我是一个新的使用散景。我试图实现嵌套条形图在散景测试的目的。这是我的代码
def visualEmergence():
output_file("EmergencyOverview")
jobemergence=['Access Cards/ FOBs/ Keys','Plumbing','QR Demo Request Type','Demo Request Type','Other','ThisRequestType1']
jobstatus=['Open','In Progress','Completed']
graphdata={ 'jobemergence':jobemergence,
'Open':[4,3,0,4,0,1],
'In Progress':[2,1,2,4,0,0],
'Completed':[1,1,1,1,1,0]}
x=[(jobemergence,jobstatus)for job in jobemergence for stat in jobstatus]
stackvalue=sum(zip(graphdata['Open'],graphdata['In Progress'],graphdata['Completed']),())
source=ColumnDataSource(data=dict(x=x,count=stackvalue))
plot=figure(x_range=FactorRange(*x),plot_height=250,title='Emergency Request Overview')
plot.vbar(x='x',top='stackvalue',width=0.9,source=source,line_color="white",fill_color=factor_cmap('x',palette=Spectral6,factors=jobstatus,start=1,end=2))
plot.y_range.start=0
plot.x_range.range_padding=0.1
plot.xaxis.major_label_orientation=1
plot.xaxis.grid_line_color=None
show(plot)
但我在此行之后收到错误
plot=图(x_range=因子范围(*x),plot_height=250,title ='紧急请求概述'
错误为
raise ValueError("expected an element of either %s, got %r" % (nice_join(self.type_params), value))
ValueError: expected an element of either Seq(String), Seq(Tuple(String, String)) or Seq(Tuple(String, String, String)), got [(['Access Cards/ FOBs/ Keys', 'Plumbing', 'QR Demo Request Type', 'Demo Request Type', 'Other', 'ThisRequestType1'] ...
也许我错过了一些非常愚蠢的东西。请帮助我弄清楚。我已经按照散景的最新文档为这个谢谢
1条答案
按热度按时间jljoyd4f1#
例外状况会正确说明问题所在。因素必须是:
字符串列表:
['foo', 'bar', ...]
用于包含类别列表的基本条形图,例如“部门”字符串的2元组列表:
[('A', 'foo'), ('A', 'bar'), ...]
表示具有嵌套类别的条形图,例如“部门中的部门”字符串的3元组列表:
[('West', 'A', 'foo'), ('West', 'B', 'bar'), ...]
用于类别嵌套两个级别的条形图,例如“departments within division within regions”但是,传递给
FactorRange
的x
值看起来并不像上述任何一项。这是一个元组列表,但是元组中的项是更进一步的列表,而不是字符串,因为它们必须是有效的因子。
我不太清楚你到底想完成什么,所以我不能给出任何替代方案,但希望能够明确地比较你所拥有的和哪些类型的值是有效的,这将为你指明方向。