Bar柱状图学习
1.pycharm中添加多个文件夹路径:File->Settings->Project->Project Structure->Add Content Root
2.Bar.add_yaxis(),有哪些参数?
基础参数有两个,Bar.add_yaxis(" ", y_data)。需要写明白图例的名字是什么,不想显示图例就可以空着不写;以及将什么数据作为y轴数据。这两个参数是要写在最前面的,其余补充参数都写在其后!
其他补充参数有很多,可关注pyecharts - A Python Echarts Plotting Library built with love.这里稍微列举几个常用的。
①color柱状体的颜色
如:color="#2a5caa",可以生成蓝色的柱状体
②category_gap柱状体之间的间隙大小
如:category_gap = 0,可以产生柱体粘连的效果
③label_opts,标签配置项,可以设置是否显示标签,显示什么样的标签,和系统配置项里的LabelOpts:标签配置项一样
如:label_opts = opts.LabelOpts(is_show=False),则不显示标签
如:label_opts = opts.LabelOpts(is_show=True,font_size=20)
font_size可以设置标签字体大小。注:is_show=True,写不写都可以,默认是会显示标签的。
④总结:bar = Bar(init_opts=opts.InitOpts(width='1500px',height = '1500px',bg_color="#918597")) .add_yaxis('每国所含公司数量', y_data, color="#2a5caa", category_gap= 0,label_opts = opts.LabelOpts(is_show=True,font_size=10))
3.Bar.reversal_axis(),可将原本默认的竖向柱状图转为横向柱状图
如果有原本x轴上的文本太长,挤在一起无法显示完全了,就可以把柱状图进行旋转处理。
4.坐标轴标签旋转
如果有原本x轴上的文本太长,挤在一起无法显示完全了,就可以把坐标轴标签进行旋转处理,让其显示完全。
xaxis_opts = opts.AxisOpts(name = '国家',axislabel_opts = opts.LabelOpts(rotate = -30))
全部代码:
import pandas as pd from pyecharts.charts import Bar from pyecharts.charts import Grid from pyecharts import options as opts df = pd.read_excel('F:\\python\\pythonProject\\data\\2022年世界五百强排行榜.xlsx') df.head()
df_region = df.groupby('国家')['公司名称'].count().to_frame('数量').reset_index()
df_region_sort = df_region.sort_values(by = '数量')
x_data = df_region_sort['国家'].tolist() y_data = df_region_sort['数量'].tolist()
#顺序为:初始化配置——添加x轴数据——添加y轴数据(此处可设置图例名字,图例颜色,柱状间隔等)——全局设置(大框架)——系列设置(细节) bar = Bar(init_opts=opts.InitOpts(width='1500px',height = '1500px',bg_color="#918597"))\ .add_yaxis('每国所含公司数量', y_data, color="#2a5caa", category_gap= 0,label_opts = opts.LabelOpts(is_show=True,font_size=15))\ .add_xaxis(x_data)\ .set_global_opts(title_opts=opts.TitleOpts(title='各国世界500强企业数量排名',subtitle='副标题',pos_top='10',title_textstyle_opts= opts.TextStyleOpts(font_size=22,color="#38d9a9"))#标题名称、标题位置(pos_right='center')、标题大小、标题颜色 ,yaxis_opts = opts.AxisOpts(name = '企业数量')#y、x坐标轴名称 ,xaxis_opts = opts.AxisOpts(name = '国家',axislabel_opts = opts.LabelOpts(rotate = -30)))\ #.reversal_axis()#转为横向柱状图 #grid = Grid(init_opts=opts.InitOpts(width='1000px', height='1000px',bg_color='#0d0735')) #grid.add(bar, grid_opts=opts.GridOpts(pos_left='15%')) #grid.render("F:\python\pythonProject\9.20.html") bar.render("F:\python\pythonProject\9.20.html")
先记录到这里,目前尚未解决的问题是,标题、副标题会压盖坐标轴的文字信息。
下一章记录地理图表的编程学习。