为什么 Pandas 反转我的 x 轴顺序?

Why is Pandas inverting my x-axis order?

当我绘制两个数据系列的对比图时,X 轴意外反转。我知道这个问题听起来与另一个问题非常相似: 实际上是这样,但我想知道是否可以禁用此问题或其他问题,而不是解决方法。让我自己解释一下。

我有一个非常简单的 DF,它包含一个日期时间索引和两列;一个有湿度测量值,另一个有每日体重。它们都按降序排列,因为当我的样品失水时,它也会失去重量和湿度。所以我的 DF 看起来像这样,我的数据按降序排列

但是,当我使用 X = "Peso"(重量)和 Y = 'Humedad'(湿度)进行绘图时,我的 X 轴按升序而不是降序排列。

我的绘图代码:

plt.figure(figsize=(12,9))
plt.scatter(data['Peso'],data['Humedad'])
plt.xlabel('Peso (kg)',fontsize=14)
plt.ylabel("Raw Counts",fontsize=14)
plt.xticks(rotation=90,fontsize=10)
plt.grid()

导致这种情节,其中 X 轴反转

所以,我可以做两种简单的解决方法:

plt.scatter(sorted(data['Peso']),data['Humedad']) 

plt.scatter(data['Peso'][::-1],data['Humedad'])

它们的结果相同,它们打印了我想要的数据,但我的 xticks 仍然是倒置的:

所以我所做的是创建一个包含我的权重值的列表,以便按如下方式插入它:

semin=data['Peso']
semin=semin.tolist()

然后像这样将它添加到我的 plt.xticks

plt.xticks(semin,rotation=90,fontsize=10)

它 "kind off" 有效,重叠了一些 xticks,如下图所示:

我知道我可以用 [Locs] 和一般 xticks 信息解决这个问题,但我真的很想知道 是否可以只要求 Pandas 遵循自然数据降序或任何类似的东西并避免所有这些 xticks 东西?

我也检查过这个:https://github.com/pandas-dev/pandas/issues/10118 我尝试了 set_index 建议:

plt.figure(figsize=(12,9))
data.set_index('Peso').Humedad.plot()
plt.xlabel('Peso (kg)',fontsize=14)
plt.ylabel("Raw Counts",fontsize=14)
plt.xticks(rotation=90,fontsize=10)
plt.grid() 

它几乎完美,除了我需要分散它...

所以我尝试了一些东西 "scatter it"

1. 放置标记类型:

data.set_index('Peso').Humedad.plot(marker='o')

得到一个标记+折线图:

2. 将 .scatter 的 .plot 更改为绘图:

data.set_index('Peso').Humedad.scatter()

遇到这个错误:

AttributeError: 'Series' object has no attribute 'scatter'

3. 同时使用

data.set_index('Peso').Humedad.plot.scatter()

得到这个:

AttributeError: 'SeriesPlotMethods' object has no attribute 'scatter'

4. 做这个大问题。请帮忙。

就这些了,抱歉,如果我遗漏了什么或者我的 post 太长了。我愿意接受建议、更正或任何你愿意告诉我的事情。

谢谢!

哦,我刚刚看到 实际上可以满足您的需求。将把它留在这里。但请改为参考链接的问题。

更改刻度不是解决方案!由此产生的情节很容易完全错误。

代替 google 大约 "invert x axis",发现您可以通过

反转轴
ax = df.plot(...)
ax.invert_xaxis()

这不是解决方法。它解决方案。 (它能变得多容易?)