无法在Ubuntu 14.04上绘制直方图

时间:2017-01-27 05:16:42

标签: python ubuntu data-visualization bokeh

我在Ubuntu 14.04上使用Python 2.7和Bokeh 0.12.4。我有一个像这样的数据框:

         msrp  price
compact   1.0    1.0
sedan     2.0    3.0
suv       3.0    5.0
sport     4.0    7.0

这样做:

import pandas as pd
from bokeh.charts import Histogram, output_file, show

s = pd.Series([1,2,3,4], index=['compact', 'sedan', 'suv', 'sport'], dtype='float64')
s2 = pd.Series([1,3,5,7], index=['compact', 'sedan', 'suv', 'sport'], dtype='float64')
df = pd.DataFrame({'msrp': s, 'price': s2})

output_file('test.html')
p = Histogram(df['msrp'], title='Test')
show(p)

当我运行它时,我收到以下错误:

ValueError: expected an element of either Column(Float), Column(Int), Column(String), Column(Date), Column(Datetime) or Column(Bool), got 0    2
dtype: int64

这令人费解,因为当我查看msrp系列时,我得到了:

>>> df['msrp']
compact    1.0
sedan      2.0
suv        3.0
sport      4.0
Name: msrp, dtype: float64

请注意,dtype读取为Float。我究竟做错了什么?我应该注意所有其他图表类型都能正常工作。

更新 文档上的示例也不起作用:

from bokeh.sampledata.autompg import autompg as df
p = Histogram(df['hp'], title='Test')

同样的错误。这是一个已知的问题?如果是这样,应该更新文档......

更新

我在Macbook上没遇到这个问题。只有Ubuntu。 Bokeh和Linux之间是否存在兼容性问题?我对Bokeh 0.12.4,0.12.3和0.11.0有这个问题。

1 个答案:

答案 0 :(得分:0)

不推荐使用旧的bokeh.charts API,包括Histogram,随后将其删除。要使用Bokeh创建直方图,应使用bokeh.plotting API。可以使用多种方法,这是一个使用Bokeh 0.13创建的完整示例:

import numpy as np
from bokeh.plotting import figure, show

measured = np.random.normal(0, 0.5, 1000)
hist, edge = np.histogram(measured, density=True, bins=50)

p = figure()
p.quad(top=hist, bottom=0, left=edge[:-1], right=edge[1:], line_color="white")

show(p)

enter image description here