我在制作一个散点图时遇到了麻烦,需要从日期数组和一堆PM 2.5值中获取数据。我的列表看起来像下面这样:
dates = ['2015-12-20','2015-09-12']
PM_25 = [80, 55]
我在制作一个散点图时遇到了麻烦,需要从日期数组和一堆PM 2.5值中获取数据。我的列表看起来像下面这样:
dates = ['2015-12-20','2015-09-12']
PM_25 = [80, 55]
import pandas as pd
dates = ['2015-12-20','2015-09-12']
PM_25 = [80, 55]
dates = [pd.to_datetime(d) for d in dates]
plt.scatter(dates, PM_25, s =100, c = 'red')
s
设置大小,c
设置颜色。
还有很多其他参数: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter
x
轴上使用 datetime
创建散点图时,会出现 TypeError: invalid type promotion
错误。你提供的解决方案无效。 - dwandersondates = [d.to_pydatetime() for d in dates]
对我有用。 - Tiffany G. Wilson如果要绘制包含日期数据的图表,可以使用 plot_date 命令。
与 plot() 命令类似,不同之处在于 x 或 y(或两者都是)的数据被视为日期,并且坐标轴带有标签。
首先将列表转换为日期时间,就像 @RSHARP 所展示的那样,
dates = [pd.to_datetime(d) for d in dates]
plt.plot_date(dates, PM_25, c = 'red')
通常情况下,pandas数据框更为常见。因此,对我来说更加高效:
import pandas as pd
dates = ['2015-12-20','2015-09-12']
PM_25 = [80, 55]
data = pd.DataFrame({'dates':pd.to_datetime(dates),'PM_25':PM_25})
data.plot(x='dates',y='PM_25',marker='o',linestyle='none')
而且您可以像这样定义更多:
data.plot(x='dates',y='PM_25',marker='o',linestyle='none',color='red',ms=3)
df = ...
plt.scatter(list(df.time.values),list(df.y.values),color='r')
ConversionError: Failed to convert value(s) to axis units: ...
datetime64[us]
类型的检查。如果你事先将数据转换为这个类型,你就能避免在库中出现错误的代码部分。df = ...
plt.scatter(list(df.time.astype('datetime64[us]').values),list(df.y.values),color='r')