用 matplotlib 绘图 - 试图保存我的比例顺序

Posted

技术标签:

【中文标题】用 matplotlib 绘图 - 试图保存我的比例顺序【英文标题】:Plotting with matplotlib - trying to conserve my scale order 【发布时间】:2022-01-17 23:01:56 【问题描述】:

我有以下清单:

[1, 2, 3, 17, 16, 4, 7, 6, 13, 12, 5, 24]

这些都有相关的值:

[6.254484668288452e-08,
 0.48735364325982383,
 2.691646548287535e-07,
 4.746326705218297e-15,
 4.889505772899467e-19, ...]

我希望使用plt.scatter 绘制这些值 但是,在绘制 xscale [1,2,3,17,16 等...] 时,显然设置为有序,因此失去了我试图广播的特定含义。我希望在绘图时保持这个顺序有没有办法做到这一点?

我是这样设计的,但它并没有按照我的意愿进行。

plt.scatter(lst1, lst2, s=50)
plt.xticks(lst1)
y=[0.05 for a in range(24)] # necessary for me to show significance
plt.plot(x,y,"r+")
plt.show()

【问题讨论】:

也许是plt.scatter(map(str, lst1), lst2)?如果没有,您的预期输出是什么? 应该是 plt.scatter(list(map(str, lst1)), lst2) 否则我会收到一条错误消息“matplotlib 不支持生成器作为输入” @not_speshal 谢谢!这已经奏效了。 【参考方案1】:

您应该将您的第一个列表转换为文本标签。

大概是这样的:

x = [1, 2, 3, 17, 16, 4, 7, 6, 13, 12, 5, 24]
x_ticks_label = ["".format(i) for i in x]
plt.xticks(x, xticks_label)

我以某种方式处理了仅将日期时间对象显示为时间。

【讨论】:

以上是关于用 matplotlib 绘图 - 试图保存我的比例顺序的主要内容,如果未能解决你的问题,请参考以下文章

保存绘图时更改Matplotlib图窗口的分辨率?

Python以精确的像素大小保存matplotlib图形

在 Google Colaboratory 上保存或下载 matplotlib 绘图图像

如何使用标签和刻度区域透明而不是matplotlib中的主绘图区域保存绘图?

Python Matplotlib绘图

matplotlib创建多个绘图区