更改数据的生成以按
metric元素重复,并且它应该是正确的:
'metric': [item for item in list(nba.columns) for i in range(len(nba.index))],
因此,适用于我的代码如下:
from bokeh.charts import HeatMap, show, output_fileimport pandas as pd, numpy as npfrom urllib2 import urlopennba = pd.read_csv(urlopen("http://datasets.flowingdata.com/ppg2008.csv"), index_col=0)# Normalize the data columns and sort.nba = (nba - nba.mean()) / (nba.max() - nba.min())nba.sort_values(by = 'PTS', inplace=True)score = []for x in nba.apply(tuple): score.extend(x)data = { 'players': list(nba.index) * len(nba.columns), 'metric': [item for item in list(nba.columns) for i in range(len(nba.index))], 'score': score,}output_file('test.html')hm = HeatMap(data, x='metric', y='players',values='score', title='Fruits', stat=None)show(hm)


