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

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

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

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

    推荐阅读
  • 如何给老年人送礼 怎么给老年人送礼

    尤其是跟身体健康的有关的书籍。考虑到老人的眼睛问题。最好选择文字大的书。可以选择一些小型,轻型的健身器材。这样子老人在家就可以锻炼。血糖仪,还有血压计之类。选择使用说明简单的。大部分的老人,都比较满意的礼品,就是保健品。但是,保健品一定要去正规的药店,或者是商场购买。好的茶叶,或者是制作精良的茶具,都可以。理疗器材,比如按摩椅,洗脚按摩盆。这些,老年人能用到的保健器材。理疗器材相对价格高一些。

  • 天天向上周华健模仿者(天天向上江映蓉被质疑整容)

    江映蓉说起江映蓉大家应该不会陌生,江映蓉虽然很红。在现场周华健大聊武侠梦,而江映蓉则跳出一段性感热舞,让周华健和欧弟看的则是眼睛发直直流口水。很久没有消息的江映蓉和老歌王周华健近日一起来到了天天向上做客。周华健此外周华健还现场分享和两位至交好友李宗盛、成龙的趣事。很少参见综艺节目录制的周华健专注于乐坛发展。很明显,江映蓉整容失败了。也被网友调戏为“更像范冰冰了”。

  • 实现共同富裕是什么(实现共同富裕的定义)

    共同富裕是全体人民通过辛勤劳动和相互帮助最终达到丰衣足食的生活水平是邓小平建设有中国特色社会主义理论的重要内容之一,下面我们就来聊聊关于实现共同富裕是什么?是邓小平建设有中国特色社会主义理论的重要内容之一。共同富裕是社会主义的本质规定和奋斗目标。共同富裕的实现前提是:解放和发展生产力,为实现共同富裕创造雄厚的物质基础;坚持社会主义,防止两极分化,为实现共同富裕提供牢固的政治保障。

  • 面条可以怎么做(面条可以怎样做)

    接下来我们就一起去了解一下吧!面条可以怎么做碗中放入蒜末、胡椒面、辣椒面、花椒面,淋上热油,再放一勺陈醋和适量的盐。再次煮开一分钟即可,在碗中加一勺面汤,捞出面条,撒上葱花、黄瓜丝,最后盖上鸡蛋即可以了。

  • 自己结婚当天发朋友圈的文案(适合朋友圈宣布结婚的文案)

    执子之手,与子偕老。以后,心上人是枕边人。

  • 老姜怎么种 老姜怎么种法

    至于生姜的选种就是选择健康的、块茎比较壮并且色泽比较好的姜块,并且要仔细观察姜芽是否有生机,没有出现枯萎的状态即可。斑点病的防治方法是喷洒50%百菌清800倍液,每隔7~10天喷1次。

  • 干荔枝有点回潮怎样办(干荔枝有点回潮怎样办呢)

    下面希望有你要的答案,我们一起来看看吧!干荔枝有点回潮怎样办重新晒干:将受潮的荔枝重新放在太阳下进行晒制,使得水分蒸发掉即可。荔枝干的保存方法有:常温贮存、低温冷藏、塑料袋气调贮藏、辐射贮藏及真空、充氮贮藏等。

  • 东方卫视特别抗疫节目(抗疫特别节目暂缓播出)

    抗疫特别节目暂缓播出4月13日凌晨,东方卫视官方微博发文:感谢大家对东方卫视节目的关心以云录制方式制作的公益性专题节目《众志成城同心守沪——东方卫视抗疫特别节目》明晚(4月13日)暂缓播出欢迎大家对我们的工作提出宝贵意见。

  • 周董最新作品(周董再编蜗牛带着梦想)

    而今天,荣升为奶爸的周董已经不复以前的小心翼翼的样子,拥有居高不下的人气,举手投足都是一代巨星的大气气场。他将这首最初关于梦想的心意,重新改编,纪念那段拼搏的岁月,放在1月6日上映的《一万公里的约定》。此次他在《一万公里约定》中饰演马拉松运动员阿轩,与徐太宇的霸道、搞怪相比,阿轩更加成熟内敛,对不同角色类型的大胆尝试也将让观众看到一个与众不同的王大陆。没有狗血的情节,没有矫情,没有堕胎。

  • 地理七年级下册人教版知识点(地理七年级下册知识要点整理)

    西南季风很不稳定,导致旱涝灾害频繁。西伯利亚大铁路横跨亚欧大陆,被称为“亚欧大陆桥”。人口稠密,国家众多,绝大部分是发达国家。