百摩网
当前位置: 首页 生活百科

pyecharts教程pdf(硬核干货分享几个Pyecharts技巧)

时间:2023-05-22 作者: 小编 阅读量: 4 栏目名: 生活百科

以上都是通过JS代码来实现然后再添加到Pyecharts代码当中象形柱状图象形柱状图是普通柱状图的一种衍生,普通的柱状图是由一根一根的柱子形成的,而象形柱状图则是对这个柱子的形状又做了进一步的优化,显得更加的可爱代码如下c=(PictorialBar().add_xaxis(location).add_yaxis("",values,label_opts

作者:俊欣

来源:关于数据分析与可视化

想必大家应该也已经看到很多关于数据分析的内容了,今天小编就为大家来分享一下国产可视化库pyecharts在绘制图表时一些的技巧,帮助读者画出更加酷炫以及可读性更高的图,当然在这之前呢,我们首先需要导入相应的所要用到的模块

from pyecharts import options as optsfrom pyecharts.charts import Bar, Timeline, Map, Pie, Linefrom pyecharts.faker import Fakerfrom pyecharts.globals import ThemeTypefrom pyecharts.commons.utils import JsCode

不一样的柱状图

我们先从柱状图着手,来绘制一张瀑布形状的柱状图,代码如下

x_data = [f"12月{str(i)}日" for i in range(1, 12)]y_total = [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292]y_in = [900, 345, 393, "-", "-", 135, 178, 286, "-", "-", "-"]y_out = ["-", "-", "-", 108, 154, "-", "-", "-", 119, 361, 203]bar = (Bar().add_xaxis(x_data).add_yaxis(series_name="",y_axis=y_total,stack="总量",itemstyle_opts=opts.ItemStyleOpts(),).add_yaxis(series_name="上升", y_axis=y_in, stack="总量").add_yaxis(series_name="下降", y_axis=y_out, stack="总量").set_global_opts(yaxis_opts=opts.AxisOpts(type_="value")).render("bar_waterfall_plot.html"))

output

从上面绘制出来的图表中可以看出,红色代表的是上升藏青色代表的是下降,在前三天上升的趋势之后便迎来了两天的下降走势,然后又是连续三天的上升与下降,这张图我们可以直观的看出随着时间的推移数据总体是呈现上升还是下降,用处非常的大哦!

柱状图Y轴上面的个性化标记

我们还可以自己设定Y轴上面的标记,代码如下

c = (Bar().add_xaxis(['小米', '三星', '华为', '苹果', '魅族', 'VIVO', 'OPPO']).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 万台/月")),).render("bar_yaxis_formatter.html"))

output

上图当中的Y轴上的标记后面添加了万台/月的注释,这样就可以更加地让人明白图中数据的深意了

柱状图中做出标记

我们还能够对柱状图中的某些特殊的值做出标记,例如是最大/最小值平均值等等,代码如下

c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts()).set_series_opts(label_opts=opts.LabelOpts(is_show=False),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),opts.MarkPointItem(type_="min", name="最小值"),opts.MarkPointItem(type_="average", name="平均值"),]),).render("bar_markpoint_type.html"))

output

我们可以看到直方图当中的指定的数值被标了出来,变得更加的直观,可读性更高。

对X轴和Y轴标上名字

同时我们还可以对X轴和Y轴标上名字,告诉用户X轴以及Y轴代表的是什么数据,具备更强的可读性和直观性,代码如下

c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(),yaxis_opts=opts.AxisOpts(name="我是 Y 轴"),xaxis_opts=opts.AxisOpts(name="我是 X 轴"),).render("bar_xyaxis_name.html"))

output

Pyecharts和JavaScript的联用

在Pyecharts代码当中加入JS代码,倒是并不少见,例如我们可以在当中添加JS代码来改变可视化图表的颜色,代码如下

color_function = """function (params) {if (params.value > 0 && params.value < 30) {return 'red';} else if (params.value > 30 && params.value < 80) {return 'blue';}return 'purple';}"""c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).add_yaxis("商家B",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).set_global_opts(title_opts=opts.TitleOpts()).render("bar_custom_bar_color.html"))

output

我们在对于不同数值进行了不同的处理方式,0-30这个范围的是红色、30-80的是蓝色,而其余数值的则是紫色。以上都是通过JS代码来实现然后再添加到Pyecharts代码当中

象形柱状图

象形柱状图是普通柱状图的一种衍生,普通的柱状图是由一根一根的柱子形成的,而象形柱状图则是对这个柱子的形状又做了进一步的优化,显得更加的可爱

代码如下

c = (PictorialBar().add_xaxis(location).add_yaxis("",values,label_opts=opts.LabelOpts(is_show=False),symbol_size=18,symbol_repeat="fixed",symbol_offset=[0, 0],is_symbol_clip=True,symbol=SymbolType.ROUND_RECT,).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(),xaxis_opts=opts.AxisOpts(is_show=False),yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=False),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(opacity=0)),),).render("pictorialbar_base.html"))

output

当然我们还能够对样式自定义,如下图所示,

整个代码的实现和上面的基本一致,这些自定义样式的数据放置在json文件当中,然后从该文件中读取里面的内容

with open("symbol.json", "r", encoding="utf-8") as f:symbols = json.load(f).add_yaxis("2015",[{"value": 157, "symbol": symbols["reindeer"]},{"value": 21, "symbol": symbols["ship"]},{"value": 66, "symbol": symbols["plane"]},{"value": 78, "symbol": symbols["train"]},{"value": 123, "symbol": symbols["car"]},],label_opts=opts.LabelOpts(is_show=False),symbol_size=22,symbol_repeat="fixed",symbol_offset=[0, 5],is_symbol_clip=True,)

    推荐阅读
  • 猴子寿命(猴子能活多长时间)

    20年左右猴子是哺乳纲灵长目猴科动物的统称,杂食性,以水果为主,不放过唾手可得的肉食,是三种类人猿灵长目动物的成员猴子大多为杂食性,以植物为主,也不放弃唾手可得的肉食选择食物和取食方法各异,如指猴善于抠食树洞或石隙中的昆虫,我来为大家讲解一下关于猴子寿命?猴子是哺乳纲灵长目猴科动物的统称,杂食性,以水果为主,不放过唾手可得的肉食,是三种类人猿灵长目动物的成员。

  • 斯蒂芬库里进总决赛(斯蒂芬-库里首次当选总决赛MVP)

    总决赛G6,勇士客场103-90击败凯尔特人夺得2021-22赛季总冠军。勇士时隔4年后再次夺冠,也是8年来第4个总冠军。库里贡献34分7个篮板7次助攻。赛后库里当选总决赛MVP,这是库里第4个总冠军,也是他首个FMVP。库里总决赛场均得到31.2分、6个篮板、5次助攻、三分命中率43.7%。

  • 追女人必备的技能(追女人的攻心术)

    文丨桃小菁春风十里不如你,小菁在这里,等着你!读者来信小菁你好,我最近喜欢上了一个女人,但因为我没有任何追求的经验,所以不知道该从何入手。小菁解答对于读者的求助,我自然是要给予帮助的。所以,小菁希望大家明白,追女人的攻心术:套路她。一旦女人产生了这个想法,那就会对男人投以更多的关注。快速的心跳会让人误以为是爱情到来了,从而萌生了爱意。对于强有力的套路,女人是毫无招架之力的。

  • 春节坚守在一线岗位上(春节我在岗不在一线)

    又是数九寒天的日子,又是新春即将来临的时刻,抗击疫情的阻击战再次打响。在单位几批男同志陆续下沉一线后,组织同意我前往疫情一线协助开展工作。在此次疫情防控工作中,他们承担的任务不是协助社区大筛、巡逻防控、人员转送,而是负责向管控区内的群众接驳配送食品,全力保障群众生活。每天近十九个小时的坚守,换来的是人民群众在疫情防控期间的生活稳定和理解支持,共同筑起疫情防控的人民防线。

  • 世界2风暴帝国没有博主讲吗(世界2:风暴帝国高级礼包)

    《世界2:风暴帝国》高级礼包已经上线,具体怎么领取呢?《世界2:风暴帝国》高级礼包的内容:188绑金,28888银币,朵莉旦英灵x20,神谕经验书x5,英灵之证宝箱x3,快来关注口袋巴士官方微信免费领取了~大家可以自动领哦!先到先得,数量有限。游戏简介:《世界2:风暴帝国》是由谷得游戏联合台湾OXON游戏工作室打造的一款全平台3D动作游戏,是谷得游戏继旗下经典手游《世界OL》之后推出的同IP作品。

  • 武汉中考成绩查询电话号码是多少 武汉中考报名号查询

    武汉中考成绩查询电话号码是多少?成绩查询:武汉中考考试成绩由考生毕业学校通知考生,考生也可通过武汉招考网、武汉电信号码百事通118114-8号键查询。武汉中考成绩公布的时候,由于众多考生同时进入查询网站,很有可能造成网络拥堵,有武汉电信号码的考生或家长可以通过电话进行查询,即118114-8号键。

  • 夜雨寄北写作手法(夜雨寄北的写作手法介绍)

    夜雨寄北写作手法?夜雨寄北写作手法:这是通过在巴山夜雨时思念朋友并想像重逄时的情景,抒发了自己期待与朋友尽早相见的心情和愿,我来为大家讲解一下关于夜雨寄北写作手法?跟着小编一起来看一看吧!作者以丰富的想像力,巧设将来会面之境,以援解思念之苦这是一首抒情诗,全诗跨越时空,把今日的此时此地此情此景和他日的彼时彼地彼情彼景交织起来写。

  • 排骨怎么煲汤(怎么煲排骨汤)

    以下内容大家不妨参考一二希望能帮到您!排骨怎么煲汤首先需要将玉米切段,胡萝卜切块,姜切片、大葱切段。然后把焯好的排骨放入锅中、再放入姜片、葱段、清水小火炖煮30分钟。最后再放入盐1勺、鸡精半勺拌匀即可,煲排骨汤就做好了。

  • 可乐杀精了吗(可乐杀精是真的吗)

    对极少数(3%)“巨量”饮用可乐或咖啡的年轻人而言,其中一些人确实存在精子质量下降的问题。换句话说,喝“巨量”可乐,只是不良饮食习惯的一个方面。需要特别说明的是,尽管这些“巨量”饮用可乐的人,精子总数下降30%,依然处于世界卫生组织给出的正常精子总数范围。此时精液与女性生殖道接触面积小,或因粘稠不利于精子进入女方宫颈口而导致不育,常见于严重的副性腺炎症,睾酮水平低下,射精管梗阻,逆行射精等。

  • 新能源汽车氢燃料汽车(国内首台氢燃料汽车)

    在这种情况下,氢燃料汽车就成为了人们关注的一个焦点。而最近国内首台氢燃料汽车亮相了,加氢只需5分钟、续航596km,售价大约为21.7万元。这款车就是现代汽车的氢燃料SUVNexo中国版,在国内已经正式获得北京新能源汽车牌照,可以合法上路行驶了。其次氢燃料汽车在严格意义上讲才算是真正绿色环保的汽车,因为排放只有水,没有任何废气,不会污染环境。