Matplotlib显示轴但不显示数据点

2024-09-20 23:02:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用下面的代码绘制一个速度剖面图。绘制轴,但不绘制数据点

import pandas as pd
from matplotlib import pyplot as plt

n = 0.4
k = 53
d = 0.000264
r = 0.000132
p = 15000
u = (n/n+1)*(p*1/2*k)**(1/n)*(d**((n+1)/n) - r**((n+1)/n))
plt.plot(u)

生成的图表: Graph produced


Tags: 数据代码fromimportpandasplotmatplotlibas
1条回答
网友
1楼 · 发布于 2024-09-20 23:02:10

首先,请注意(p*1/2*k)是一种非常容易混淆的乘法编写方法。在(几乎所有)编程语言中,乘法和除法是从左到右进行的,因此,(p*1/2*k)等于(p*k/2),而您可能指的是(p/(2*k))

plotting a 2D graph时,你必须思考你在x方向上想要什么,在y方向上想要什么。由于您只给出了一个x,因此没有什么可绘制的。另外,plot默认情况下,需要绘制直线,并且对于一条直线,至少需要2个xy对。若要仅绘制点,plot接受第三个参数,例如“ro”,以表示红点。假设uy方向,并且没有x,可以给它一个零:

plt.plot(0, u, 'ro')

现在,可能需要为一些x的不同值绘制一条u曲线。因为在你的方程式中既没有x也没有t,我很难知道你想在水平方向上看到什么

假设您想将u显示为d的函数,并且d0.00.0005。通常,使用numpy可以为d创建一个sequence of values,比如分成200个小间隔:d = np.linspace(0.0, 0.0005, 200)。然后是magick of numpy,当您写入u = f(d)时,numpy为u创建一个数组,其中包含的条目数与d的条目数相同

例如:

import numpy as np
from matplotlib import pyplot as plt

n = 0.4
k = 53
d = np.linspace(0.0, 0.0005, 200)  # 0.000264
r = 0.000132
p = 15000
u = (n / n + 1) * (p * 1 / 2 * k) ** (1 / n) * (d ** ((n + 1) / n) - r ** ((n + 1) / n))
plt.plot(d, u)
plt.show()

the plot

相关问题 更多 >

    热门问题