繁体   English   中英

Matplotlib 散点图双 y 轴

[英]Matplotlib scatter plot dual y-axis

我试图弄清楚如何在 matplotlib 中使用两个不同的 y 轴值创建散点图。 现在我有一个,需要在 y 上添加第二个索引列值。

points1 = plt.scatter(r3_load["TimeUTC"], r3_load["r3_load_MW"],
                     c=r3_load["r3_load_MW"], s=50, cmap="rainbow", alpha=1) #set style options
plt.rcParams['figure.figsize'] = [20,10]
#plt.colorbar(points)

plt.title("timeUTC vs Load")
#plt.xlim(0, 400)
#plt.ylim(0, 300)
plt.xlabel('timeUTC')
plt.ylabel('Load_MW')
cbar = plt.colorbar(points1)
cbar.set_label('Load')

在此处输入图像描述

我期望的结果是这样的: 在此处输入图像描述

所以第二个散点集应该是 TimeUTC vs index。 颜色不是主题;)在excel中y轴也是不同的站点,但没关系。

感谢您的帮助! 谢谢,宝琳娜

在评论中的建议之后继续。

两种使用matplotlib的方法

  • 通过matplotlib.pyplot接口,就像您在原始代码片段中使用.plt所做的那样
  • 面向对象的方式。 这是使用matplotlib的建议方法,尤其是当您需要更多自定义时,例如您的情况。 在您的代码中, ax1是一个Axes实例

Axes实例中,您可以使用Axes.plotAxes.scatter方法绘制数据,这与您通过pyplot界面所做的非常相似。 这意味着,您可以编写Axes.scatter调用而不是.plot并使用与原始代码中相同的参数:

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

ax1.scatter(r3_load["TimeUTC"], r3_load["r3_load_MW"],
                     c=r3_load["r3_load_MW"], s=50, cmap="rainbow", alpha=1)
ax2.plot(r3_dda249["TimeUTC"], r3_dda249.index, c='b', linestyle='-')

ax1.set_xlabel('TimeUTC')
ax1.set_ylabel('r3_load_MW', color='g')
ax2.set_ylabel('index', color='b')

plt.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM