【发布时间】:2017-06-06 05:12:57
【问题描述】:
我一直在尝试制作散景折线图,但是我遇到了用我的 pandas 数据框中的一列时间戳索引 x 轴的问题。目前我的数据框如下所示:
TMAX TMIN TAVG DAY NUM
2007-04-30 65 46 55.5 2007-04-30 1
2007-05-01 75 45 60.0 2007-05-01 2
2007-05-02 66 52 59.0 2007-05-02 3
2007-05-03 65 43 54.0 2007-05-03 4
2007-05-04 61 45 53.0 2007-05-04 5
2007-05-05 65 43 54.0 2007-05-05 6
2007-05-06 77 51 64.0 2007-05-06 7
2007-05-07 89 66 77.5 2007-05-07 8
2007-05-08 91 56 73.5 2007-05-08 9
2007-05-09 83 48 65.5 2007-05-09 10
2007-05-10 68 47 57.5 2007-05-10 11
2007-05-11 65 46 55.5 2007-05-11 12
2007-05-12 63 43 53.0 2007-05-12 13
2007-05-13 65 46 55.5 2007-05-13 14
2007-05-14 71 46 58.5 2007-05-14 15
....
[3592 rows x 5 columns]
我想用“DAY”列的值来索引线图,但是,无论我采用哪种方法,都会出错。折线图的文档说“x (str or list(str), optional) – 指定用于 x 轴的变量”。我的代码如下:
xyvalues = np.array([df['TAVG'], df_reg['ry'], df['DAY']])
regr = Line(data=xyvalues, x='DAY', title="Linear Regression of Data", ylabel="Average Daily Temperature", xlabel="Number of Days")
output_file("regression.html")
show(regr)
这给了我错误“TypeError:无法将类型 'Timestamp' 与类型 'float64' 进行比较”。我尝试将其转换为浮动,但它似乎没有效果。任何帮助将非常感激。 df_reg['ry'] 是来自线性回归数据框的数据。
折线图的文档可以在这里找到:http://docs.bokeh.org/en/latest/docs/reference/charts.html#line
【问题讨论】:
-
看来您需要通过
df1 = pd.concat([df[['TAVG', 'DAY']], df_reg['ry']], axis=1)将两个数据帧连接在一起,然后使用regr = Line(data=df1, x='DAY', title="Linear Regression of Data", ylabel="Average Daily Temperature", xlabel="Number of Days")。如果不起作用,df_reg['ry'].head()是什么?