当我正在相互绘制两个系列的数据时,X轴意外反转。我知道这个问题听起来与其他问题非常相似:x-axis inverted unexpectedly by pandas.plot(...)实际上是这样,但我想知道这是否可以被禁用或其他什么,而不是解决方法。让我解释一下自己。
我有一个非常简单的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)
它“好心”工作,覆盖了一些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()
它几乎完美,除了我需要分散......
所以我尝试了一些东西“分散它”
1。放置标记类型:
data.set_index('Peso').Humedad.plot(marker='o')
有标记+折线图:
2. 将.scatter的.plot更改为剧情:
data.set_index('Peso').Humedad.scatter()
出现此错误:
AttributeError:'Series'对象没有属性'scatter'
3. 同时使用
data.set_index('Peso').Humedad.plot.scatter()
得到这个:
AttributeError:'SeriesPlotMethods'对象没有属性'scatter'
4. 提出这个巨大的问题。请帮忙。
就是这样,抱歉,如果我遗失了某些内容,或者我的帖子太长了。我愿意接受建议,更正或任何你愿意告诉我的事情。
谢谢!
答案 0 :(得分:2)
哦,我刚看到linked question确实完全符合你的需要。将此保留为此处。但请改为参考链接的问题。
这不是改变蜱虫的解决方案!结果情节可能很容易完全错误。
而是google for"反转x轴"或者发现你可以通过
反转轴ax = df.plot(...)
ax.invert_xaxis()
这不是一种解决方法。 是解决方案。 (它能容易多少?)