如何解决Matplotlib:如何在散点图上方绘制时间序列
我找到了类似问题的解决方案,但它们都产生了奇怪的结果。
我的情节看起来像这样:
ax1 = dft.plot(kind='scatter',x='end_date',y='pct',c='fte_grade',colormap='Reds',colorbar=False,edgecolors='red',vmin=4,vmax=10)
ax1.set_xticklabels([datetime.datetime.fromtimestamp(ts / 1e9).strftime('%Y-%m-%d') for ts in ax1.get_xticks()])
dfb.plot(kind='scatter',colormap='Blues',title='%s Polls'%state,ax=ax1,edgecolors='blue',vmax=10)
plt.ylim(30,70)
plt.axhline(50,ls='--',alpha=0.5,color='grey')
plt.xticks(rotation=20)
现在,每当我尝试在其上绘制一条线时,都会得到以下内容:
import matplotlib.pyplot as plt
import numpy as np
x = dft['pct']
u = dft['Trump Odds']
t = list(pd.to_datetime(dft['end_date']))
plt.hold(True)
plt.subplot2grid((1,1),(0,0))
plt.plot(t,x)
plt.scatter(t,u)
plt.show()
如果不清楚,这不是我想要的。这些点代表单独的民意测验,而我的数据则代表一条汇总单独的民意测验的线。我认为这与日期时间以及在轮询中针对特定日期进行多次轮询的可能性有关。我认为绘图仪感到困惑,因为我在同一日期具有双精度值,因此它假定这不是时间序列,并且当我绘制一条线时,它会维持我们不需要任何连续性的假设。 >
python中必须有某些东西可以处理在时间xaxis散点图上绘制时间序列吗?
dft数据:
end_date pct fte_grade Trump Odds
0 1598054400000000000 32.0 6 32.000000
1 1588550400000000000 32.0 7 32.000000
2 1582156800000000000 39.0 8 34.666667
3 1585180800000000000 33.0 8 34.206897
4 1587600000000000000 29.0 8 33.081081
5 1590019200000000000 32.0 8 33.025641
6 1559779200000000000 36.0 8 33.800000
7 1593043200000000000 32.0 8 32.400000
解决方法
您的strange行不是由于您没有在绘制前对df进行排序吗?
import matplotlib.pyplot as plt
import numpy as np
dft=dft.sort_values(by=['end_date'])
x = dft['pct']
u = dft['Trump Odds']
t = list(pd.to_datetime(dft['end_date']))
plt.hold(True)
plt.subplot2grid((1,1),(0,0))
plt.plot(t,x)
plt.scatter(t,u)
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。