作者 | 俊欣

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

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

from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline, Map, Pie, Line
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from 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(color="rgba(0,0,0,0)"),).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(title="不同商店的销量"),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(title="不同标记的直方图")).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(title="Bar-XY 轴名称"),yaxis_opts=opts.AxisOpts(name="我是 Y 轴"),xaxis_opts=opts.AxisOpts(name="我是 X 轴"),).render("bar_xyaxis_name.html")
)

output

PyechartsJavaScript的联用

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(title="Bar-自定义柱状颜色")).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(title="PictorialBar-各省份人口数量(虚假数据)"),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,)

技术

用python制作酷炫的可视化大屏

资讯

商汤科技上市,开启AI新篇章

技术

2021年有用的数据清洗python库

资讯

这个AI模型火上GitHub热榜

分享

点收藏

点点赞

点在看

分享几个 Pyecharts 技巧,助你画出更直观/炫酷的图表相关推荐

  1. ai钢笔工具怎么描线_AI钢笔工具技巧,怎么画出完美的贝塞尔曲线

    AI钢笔工具技巧,怎么画出完美的贝塞尔曲线 我们在刚开始学习UI的时候,通常会临摹很多作品,一般临摹都分为两个步骤,第一步是使用钢笔工具把物体勾勒出来,但是很多人在勾轮廓的时候往往都不流畅,其实这是钢 ...

  2. 干货分享 | 用Pyecharts绘制20钟不同风格的炫酷交互式图表,建议收藏

    今天小编来给大家介绍一下如何在Pyecharts当中画出炫酷的图表,通过该模块当中的一系列设置,本文我们大致会介绍pyecharts当中的 Theme图表背景 Pyecharts模块内部内置了10多种 ...

  3. python优雅代码大全_10个Python技巧帮你写出更优雅的代码

    阅读本文需要 2 分钟,公众号 somenzz ,欢迎学习 Python 的朋友订阅. 现在写代码的门槛非常低了,少儿都开始编程了,但从代码的风格一眼看出编码水平.是的,写代码是容易的,写出易读的代码 ...

  4. php 贝瑟尔曲线,钢笔工具进阶技巧!如何画出完美的贝塞尔曲线?

    每次临摹基本都可以分为两个步骤,第一步是用钢笔工具和形状工具把物体勾勒出来,第二步是往形状上填充颜色,然后加一些渐变或者投影.在填充颜色和细节的时候是很享受的,但是在勾轮廓的时候总是很崩溃,画出来的曲 ...

  5. 三菱880彩铅和uni的区别_彩铅测评|用三菱uni彩铅画出更有层次感的花卉作品!...

    花卉/多肉是我自学#彩铅#的重要动力,红辉颜色清新淡雅,特别适合画日式小清新风格:笔身偏硬,刻画复杂花瓣纹理.结构时也非常好用. 但如果是颜色鲜艳或更写实的花卉作品,红辉的还是难以叠浓烈的颜色,而三菱 ...

  6. 举个栗子!Tableau 技巧(138):学做炫酷的温度计图表

    来自北京的气象分析师提了一个需求:我经常分析温度数据,Tableau 可否实现像温度计那样的图表? 图片来自网络 当然,温度计图表在 Tableau 中可以实现!并且,它不仅可以用来呈现温度数据,还适 ...

  7. 5个小技巧让你写出更好的 JavaScript 条件语句

    在使用 JavaScript 时,我们常常要写不少的条件语句.这里有五个小技巧,可以让你写出更干净.漂亮的条件语句. 1.使用 Array.includes 来处理多重条件 举个栗子 : // 条件语 ...

  8. 5个小技巧让你写出更好的JavaScript 条件语句

    在使用 JavaScript 时,我们常常要写不少的条件语句.这里有五个小技巧,可以让你写出更干净.漂亮的条件语句. 使用 Array.includes 来处理多重条件 举个栗子 : // 条件语句 ...

  9. [读书笔记]5个小技巧让你写出更好的JavaScript[图]

    在使用JavaScript时,我们常常要写不少的条件语句.这里有五个小技巧,可以让你写出更干净.漂亮的条件语句. 使用Array.includes来处理多重条件 举个栗子: //条件语句 functi ...

最新文章

  1. linux下git的简单使用
  2. java框架之Spring 核心框架体系结构
  3. 13.10 Scala中使用JSON.toJSONString报错:ambiguous reference to overloaded definition
  4. c语言 文件游程统计,游程 码表 如何形成
  5. 将csv文件存入mysql数据库_将csv文件导入到mysql数据库
  6. 内部推荐岗位信息201508
  7. SpringMVC原理
  8. 马云对创业者的经典点评
  9. 导入matplotlib.pyplot as plt画图问题Matplotlib created a temporary config/cache directory at /tmp/matplotl
  10. java单精度实型变量_C语言中,用关键字( )定义单精度实型变量,用关键字( )定义双精度实型变量。...
  11. 什么是资产证券化 - 以及资产支持证券在实际中的应用
  12. 用深度学习给黑白照片上色
  13. 项目中身份证有效期的判断规则
  14. 【sdx62】WCN6855 WCN6856 WiFi 增加强制40MHz频宽的功能实现
  15. android美拍sd卡,AI美拍,智慧四摄;小i也有大不同
  16. 统计输入字符串中大写字母、小写字母、阿拉伯数字个数和特殊符号的个数
  17. 曾仕强经典语录-《易经的智慧》
  18. 2.浅浅体验Python编程
  19. Unity 仿 了不起修仙模拟器画符
  20. 原创高端影楼人像专业磨皮法教程详解 附PSD源码

热门文章

  1. UI设计培训需要学哪些内容
  2. 学python培训到底能干嘛
  3. 软件测试培训需要学习什么技术
  4. 执行远程linux命令,linux shell 远程执行命令
  5. AI一周热闻:GitHub免费开放无限私有库;苹果市值蒸发超450亿美元;小米入股TCL...
  6. linux系统命令学习系列-文件和目录管理
  7. 时区切换导致quartz定时任务没有触发问题
  8. Spring MVC 相关资料整理
  9. 通过响应式web设计,使本站支持手机浏览
  10. urlparse模块(专门用来解析URL格式)