在 Python 上使用 Pyplot 显示绘图中的所有点

Show all points in a plot with Pyplot on Python

所以我是 Pyplot 的新手,我能够显示标准的 x,y 图。

现在我的问题是我有一系列(时间,百分比)形式的点,但我同时有多个百分比。例如:

x(time) y(percentage)
0:0:1   3
0:0:1   4
0:0:1   2
0:0:1   1
0:0:2   1
0:0:2   3
0:0:2   2

出于某种原因 plt.plot 只为 0:0:10:0:2 绘制一个值,但我想在 x 轴上绘制每个值,即使它们具有相同的值。

我在 x 轴上使用 plt.gcf().autofmt_xdate()

有办法吗?

不确定这是否有帮助,因为我不确定您的数据集是否已修复,但您可以通过 plt.xticks 显示它,尽管您可能需要更改或修改您的初始数据集。

假设下面是您的代码:

data = {
    'x(time)':['0:0:1a','0:0:1b','0:0:1c','0:0:1d','0:0:2e','0:0:2f','0:0:2g'],
    'y(percentage)': [3,4,2,1,1,3,2]
}
print(data)
df = pd.DataFrame(data=data)
print(df)
your_label = ['0:0:1','0:0:1','0:0:c','0:0:1','0:0:2','0:0:2','0:0:2']

然后您将使用代码绘制它:

plt.scatter(x='x(time)', y='y(percentage)', data=df)
plt.xticks(ticks=df['x(time)'], labels=your_label)
plt.show()

plt.xticks 将为您的绘图生成新标签。当然,您可以使用像 np.arange 这样的生成器来为您生成标签,但这首先取决于您的初始数据集是否可以修改。

我也期待其他人的回复。