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

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

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

以上都是通过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,)

    推荐阅读
  • 太阳能是双碳企业吗(双碳目标之下太阳能热利用行业能否二次腾飞)

    乘着家电下乡政策的东风,这个行业实现了自身发展的首次腾飞。集热器的年度销量在连年下跌后,已经回到2008年的规模水平。日出东方旗下的四季沐歌就是目前仍旧拥有稳定太阳能热水器单机零售渠道的头部品牌之一。《报告》显示,通过对山东、江苏、河北、云南、北京等地太阳能企业抽样调查得知,2020年工程市场占据了企业主营业务版块的74.3%。

  • 减掉10斤要消耗多少卡路里(减掉一公斤脂肪)

    医学减重专家陈伟今天正确的减重应该是减少脂肪组织内的脂肪,数据表明,减掉一公斤脂肪,一般需要消耗7000-10000千卡左右的能量。若每日减少500千卡能量摄入,则需14天减少1公斤;若每日减少1000千卡能量摄入,则需7天减去1公斤。若想通过增加活动量来达到同样的目的,则需要每天高强度锻炼至少1个小时,约能消耗掉500千卡。大家如果有减重方面的问题,想咨询陈伟教授,可以发邮件到邮箱,陈教授会定期为大家答疑解惑。

  • 红薯叶子有哪些禁忌(关于红薯叶子有哪些禁忌)

    红薯叶子有哪些禁忌体寒、肠胃不好的人要少吃红薯叶性凉,体寒、肠胃不好的人要少吃,不然的话可能会加重体寒的症状,增加胃肠道负担,给身体带来危害。避免和豆腐同食红薯叶中含有大量的草酸钙,而豆腐中含有生石灰,二者同食可能会生出草酸钙沉淀,形成一些不可溶解的结晶,造成结石,红薯叶尽量避免和豆腐同食。

  • 李白最美的相思诗(李白最美的一首相思诗)

    《三五七言》秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。在诗词中,秋夜怀人已经成为习俗。这首《三五七言》由两句三言、两句五言、两句七言组成,故名。《梅庵琴谱》叙述,后三联并非李白所作。有些诗集收录李白《三五七言》时,也只写了前三联。时至今日,我们已经无法考查出后三联是否是李白的真实作品。如果是李白所作,我们亦可窥见李白绵长的情思和高超的写作水平。

  • 和平精英巡查员有什么用(和平精英巡查员的是做什么的)

    和平精英巡查员有什么用?接下来我们就一起去了解一下吧!可以帮助官方检测报道的视频,根据检查的次数获得相应的检称号题,甚至解锁永久的视频巡查员奖励。这些好处仍然很吸引人,想要收集它们的玩家可以尝试提交它们。当成为巡查员以后,会有专属于巡查员的任务,完成他们以后,会获得奖励,每个赛季,都有每个赛季的巡查任务,以及赛季巡查的专属奖励。

  • 在海上感觉的句子(在海上的句子盘点)

    它并不凶猛,也不可怕。我躺在沙滩上,就像躺在摇篮里,又像躺在妈妈的怀里。看这海天一色的美景下,不少花花绿绿的小点以及欢快的呼喊声冲击这人们的视觉与听觉。这欢乐的人们在大海母亲的怀抱中多么自在,多么轻松。我用手轻轻的拍打着浪花,顽皮的浪花溅起了无数颗细小的水珠,溅在脸上凉丝丝的真是舒服。你看,这飞奔的浪花多像一个个淘气的小娃娃呀。

  • 影之诗最强攻略(每日影之诗咸鱼翻身)

    在很多对局中,仅凭佐伊便足以取胜。中期尽快使用凤凰的庭园或进化万花凤凰召唤庭园,并找机会在场上凑齐双庭园。没有以上牌的话,可以使用蜥蜴的吐息解场,或使用龙之传令、激奏佐伊。通常火神龙优先于嗔怒,因为嗔怒与庭园配合更好,也不干扰辉饰拿佐伊。龙铠战士的主战者效果能提供大量额外伤害,可以配合猎龙砍击等法术打出最高满血斩杀,应对安息的领域等减伤手段。对鬼留降诞的涸绝。

  • 王砚辉大人物经典片段(49岁反派专业户王砚辉)

    49岁反派专业户王砚辉现实题材电视剧《小欢喜》近日引发了不小的讨论,剧中实力派演员王砚辉和咏梅组成的区长一家是近年荧屏生活剧中很少见到的干部家庭如何才能把这个“区长老爸”演得像?在王砚辉看来,演干部也好,演父亲也好,无论演。

  • 福建正宗鱼丸的做法(大厨分享秘制鱼丸)

    福建正宗鱼丸的做法鱼肉大家都认识,它是我们餐桌上经常吃到的食物之一,它的营养价值非常高,有丰富的蛋白质,还有维生素等其他微量元素。2根鲢鱼尾,葱姜水,适量盐,适量鸡精,一大勺玉米淀粉,2个鸡蛋清,一勺猪油。

  • 重庆高考成绩查询时间是好久(重庆高考成绩查询时间一样吗)

    包括按规定可安排在提前批次录取的招生专业和计划。包括定向培养士官招生等有面试体检(体测)等特殊要求、航海类等艰苦专业及其他按规定可安排在提前批次录取的专科招生专业及计划,设置2个院校顺序志愿。除高职专科提前批以外的其他专科招生专业及计划,设置96个专业平行志愿。强基计划、香港高校独立招生、民族传统体育和运动训练专业单独招生、飞行技术招生等安排在普通类本科提前批A段前进行。