当前位置: 首页 > 科技观察

条形图、饼图和折线图怎么样?来用Python画个热力图吧

时间:2023-03-16 20:38:41 科技观察

梦幻世界,引人入胜。有太多东西要选择?凡事存在皆有道理,难得知根知底。艺术行业是有专攻的,不能乱来。不知道怎么画热力图,请往下看。第一步:安装导入相关包。主要用到pandas和pyecharts这两个包。pandas是用来读取我存入Excel的数据的,pyecharts是用来可视化数据的。这里需要注意pyecharts的版本,因为不同版本之间代码可能不一样,我安装的是最新版本,也就是1.7.1版本。如果没有这两个包,先安装:pipinstallpyechartspipinstallpandas安装完成后导入:importpandasapdrompyechartsimportoptionsasoptsfrompyecharts.chartsimportHeatMap第二步:读取数据我的数据放在Excel中,如下:studentgrades.xlsx用pandas读取数据:data=pd.read_excel('学生成绩.xlsx')x=data['姓名'].tolist()y=data.columns.values[1:].tolist()values=[[i,j,int(data.iloc[i,j+1])]foriinrange(len(x))forjinrange(len(y))]最后一行代码的作用是将每个分数与其对应的行和列索引(其中也可以理解为坐标)。我知道大家不会理解,所以我直接打印出数值,如下:[[0,0,85],[0,1,74],[0,2,62],[0,3,72],[0,4,87],[0,5,80],[0,6,74],[0,7,94],[0,8,82],[1,0,72],[1,1,66],[1,2,71],[1,3,60],[1,4,66],[1,5,68],[1,6,68],[1,7,62],[1,8,93],[2,0,96],[2,1,80],[2,2,75],[2,3,85],[2,4,70],[2,5,83],[2,6,90],[2,7,75],[2,8,83],[3,0,78],[3,1,61],[3,2,70],[3,3,78],[3,4,89],[3,5,70],[3,6,65],[3,7,76],[3,8,95],[4,0,65],[4,1,81],[4,2,72],[4,3,96],[4,4,77],[4,5,88],[4,6,78],[4,7,90],[4,8,83],[5,0,70],[5,1,90],[5,2,65],[5,3,91],[5,4,85],[5,5,75],[5,6,70],[5,7,83],[5,8,72],[6,0,63],[6,1,72],[6,2,70],[6,3,80],[6,4,65],[6,5,80],[6,6,68],[6,7,93],[6,8,85]]第三步:绘制myHeatMap=HeatMap()myHeatMap.add_xaxis(x)myHeatMap.add_yaxis("学生成绩",y,values)myHeatMap.set_global_opts(title_opts=opts.TitleOpts(title="HeatMap"),visualmap_opts=opts.VisualMapOpts(min_=60,max_=100))myHeatMap.render(path='studentresults.html')嗯,上面应该没什么好说的,ever谁都能理解。其中60和100代表我数据的范围,因为所有的分数都在60到100的范围内。运行上面的代码后,会得到一个html文件,打开后如下:studentgrades.html其实我提前准备了一些内容来描述为什么我用热图而不是其他图片,但是写完之后出来,我觉得有点抽象。对读者不是很友好。所以只能让你们私下仔细看看。你可以想象用其他图片画画会是什么感觉。有没有直观的热图。最后希望大家能出什么样的数据适合什么样的图...