我在制作一个散点图时遇到了麻烦,该散点图包含一个日期数组和一堆PM 2.5值。我的列表如下所示:
dates = ['2015-12-20','2015-09-12'] PM_25 = [80, 55]
c0vxltue1#
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
s
c
bq8i3lrv2#
如果图中的数据包含日期,则可以使用**plot_date**类似于plot()命令,除了x或y(或两者)数据被认为是日期,并且轴被标记。首先将列表转换为日期时间,如@RSHARP所示,
dates = [pd.to_datetime(d) for d in dates]
你可以使用plot_date
plt.plot_date(dates, PM_25, c = 'red')
xwmevbvl3#
一个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)
qvsjd97n4#
显然,在图书馆最近的几次更新后,其他答案不起作用。使用@Apex,我们可以得到以下结果:
df = ... plt.scatter(list(df.time.values),list(df.y.values),color='r')
在这种情况下,您可能会得到以下错误:
ConversionError: Failed to convert value(s) to axis units: ...
基本上,对datetime64[us]类型有一个检查。如果你预先将数据转换为这种类型,你将避免库中的错误代码部分。因此,以下代码目前运行良好:
datetime64[us]
df = ... plt.scatter(list(df.time.astype('datetime64[us]').values),list(df.y.values),color='r')
4条答案
按热度按时间c0vxltue1#
s
设置大小c
设置颜色还有很多其他的参数:http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter
bq8i3lrv2#
如果图中的数据包含日期,则可以使用**plot_date**
类似于plot()命令,除了x或y(或两者)数据被认为是日期,并且轴被标记。
首先将列表转换为日期时间,如@RSHARP所示,
你可以使用plot_date
xwmevbvl3#
一个Pandas的框架通常是更常见的。所以它对我来说是有效的:
你可以这样定义:
qvsjd97n4#
显然,在图书馆最近的几次更新后,其他答案不起作用。
使用@Apex,我们可以得到以下结果:
在这种情况下,您可能会得到以下错误:
基本上,对
datetime64[us]
类型有一个检查。如果你预先将数据转换为这种类型,你将避免库中的错误代码部分。因此,以下代码目前运行良好: