gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:23:35 24 4
gpt4 key购买 nike

<分区>

当我绘制两个相互对比的数据系列时,X 轴意外反转。我知道这个问题听起来与其他问题非常相似:x-axis inverted unexpectedly by pandas.plot(...)它实际上是,但我想知道是否可以禁用它或其他东西,而不是解决方法。让我自己解释一下。

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

DF - my data is in descending order

但是,当我使用 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 轴是倒置的

First plot - X axis inverted

因此,我可以采用两种简单的解决方法:

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

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

它们都有相同的结果,它们按照我的意愿打印了我的数据,但我的 xticks 仍然是倒置的:

Inverted xticks

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

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

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

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

它“有点儿不合时宜”,重叠了一些 xtick,如下图所示:

More xticks problems

我知道我可以用 [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()

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

Almost there

所以我尝试了一些东西来“分散它”

1.放置标记类型:

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

得到一个标记+折线图:

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. 提出这个巨大的问题。请帮忙。

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

谢谢!

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com