首页 > 解决方案 > 避免在 matplotlib 中的 X 轴上排序,并用多个 y 轴绘制公共 X 轴

问题描述

我想在这篇文章中澄清两个问题。

我有一个如下图所示的熊猫 df。 在此处输入图像描述

1.绘图问题:。当我尝试绘图column 0 with column 1时,值会被排序。

示例:在col_0我的值从112 till 0. 当我使用下面的代码时,这些值按升序排序,并且图表显示了反转的 X 轴图。

plt.plot(df.col_0, df.col_1)

在此处输入图像描述

避免对 X 轴值进行排序的最佳方法是什么。?

2. 单个图中的所有参数 我想在一个图中绘制所有参数。除了 X 轴之外,所有其他参数值都在0 to 1(相同比例)之间,这将是最好的 pythonic 方式。任何帮助,将不胜感激。

标签: pythonpython-3.xpandasmatplotlibplot

解决方案


我不明白您对它们进行排序是什么意思 - 它不是绘制 112、0.90178 并将其连接到 110.89899、0.90779 等吗?

要共享 X 轴但有 2 个 Y 轴来绘制某些集合,请使用 twinx

fig, ax1 = plt.subplots()
ax1.plot(df.col_0, df.col_1)
ax2 = ax1.twinx()
ax2.plot(df.col_0, df.col_2)

回复:如何按您想要的顺序绘制

我相信您的意图是实际绘制这些值与时间或索引的关系。为此,我建议:

fig, ax1 = plt.subplots()
ax1.plot(df['Time'], df.col_0) # or df.index, df.col_0
ax2 = ax1.twinx()
ax2.plot(df['Time'], df.col_1)

推荐阅读