Python Matplotlib:如何在散点图上绘制时间序列

Python Matplotlib:如何在散点图上绘制时间序列,python,pandas,matplotlib,Python,Pandas,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

我已经找到了类似问题的解决方案,但它们都会产生奇怪的结果

我有这样一个情节:

使用以下代码生成:

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',x='end_date',y='pct',c='fte_grade',colormap='Blues',title='%s Polls'%state,ax=ax1,colorbar=False,edgecolors='blue',vmin=4,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

您的str ange线不是因为您之前没有对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()

你能在dft中分享你的数据样本吗?啊,是的,威尔·多耶普,它没有排序,所以这行被弄乱了。现在工作,谢谢!