用Pyplot在Python上显示所有点

发布于 2025-01-21 01:13:04 字数 386 浏览 0 评论 0原文

因此,我是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:0:10:0:2的一个值即使它们具有相同的值,也要在X轴上绘制每个值。

我正在使用plt.gcf()。x轴的autofmt_xdate()

有没有办法做到这一点?

So I'm new to Pyplot and I was able to show a standard x,y plot.

Now my issue is that I have a series of point in the form of (time,percentage) but I have multiple percentage with the same time. For istance:

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

For some reason plt.plot plot only one value for 0:0:1 and 0:0:2 but I would like to plot every value on the x axis, even if they have the same value.

I'm using plt.gcf().autofmt_xdate() for the x axis

Is there a way to do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

似最初 2025-01-28 01:13:04

不确定这是否有帮助,因为我不确定您的数据集是否已修复,但您可以通过 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 这样的生成器来为您生成标签,但这取决于您的初始数据集是否可以首先修改。

我也期待其他人的回复。

Not sure if this helps as I'm not sure if your dataset is fixed, but you could display it thru plt.xticks though you might need to change or modify your initial dataset.

Assuming below is your code:

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']

Then you would plot it using the code:

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

plt.xticks will generate new labels for your plot. Of course, you could use a generator like np.arange to generate the labels for you, but that would be dependent on whether your initial dataset can be modified in the first place.

I look forward to other people's reply too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文