Echarts 是百度开源的一个数据可视化 JS 库, 主要用于数据可视化. pyecharts 是一个用于生成 Echarts 图表的类库. 实际上就是 Echarts 与 Python 的对接.
今天就用 pyecharts 库来画图.
安装
最简单快速的命令安装方法:
pip install pyecharts
柱形图
柱形图简明, 醒目, 是一种常用的统计图形. 以下生成的图都可以点击 html 文件打开, 点击图形右边下载按钮可以下载到本地.
- from pyecharts import Bar
- bar = Bar("成绩柱形图", "副标题")
- # 用于添加图表的数据和设置各种配置项
- # is_more_utils=True 可以按右边的下载按钮将图片下载到本地
- bar.add("成绩表", ["语文", "数学", "英语", "物理", "化学", "生物"], [88, 90, 92, 87, 83, 81], is_more_utils=True)
- bar.show_config() # 打印输出图表的所有配置项
- bar.render('D:\pye\bar.html') # 在指定目录下生成一个 bar.HTML 的文件
image
饼图
饼图英文学名为 Sector Graph, 又名 Pie Graph, 常用于统计学模块.
Python 学习群: 556370268, 有大牛答疑, 有资源共享! 是一个非常不错的交流基地! 欢迎喜欢 Python 的小伙伴!
- from pyecharts import Pie
- attr = ["语文", "数学", "英语", "物理", "化学", "生物"]
- score = [20, 30, 40, 25, 10, 15]
- pie = Pie('图书销量饼图')
- pie.add('', attr, score, is_label_show=True)
- pie.render('F:\pye\pie.html')
image
圆环图
仅排列在工作表的列或行中的数据可以绘制到圆环图中.
- from pyecharts import Pie
- attr = ["语文", "数学", "英语", "物理", "化学", "生物"]
- score = [20, 30, 40, 25, 10, 15]
- pie = Pie('图书销量圆环图', title_pos='center')
- pie.add('', attr, score, radius=[40, 75], label_text_color=None, is_label_show=True,
- legend_orient='vertical', legend_pos='left')
- pie.render('F:\pye\pieround.html') # 在指定目录下生成文件
image
3D 散点图
散点图是指在回归分析中, 数据点在直角坐标系平面上的分布图, 散点图表示因变量随自变量而变化的大致趋势, 据此可以选择合适的函数对数据点进行拟合.
- from pyecharts import Scatter3D
- from pyecharts import Page
- import random
- page = Page()
- data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)]
- range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf',
- '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
- scatter3D = Scatter3D("3D 散点图示例", width=1200, height=600)
- scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color)
- page.add(scatter3D)
- page.render('D:\pye\scatter.html') # 在指定目录下生成文件
image
3D 折线图
折线图是排列在工作表的列或行中的数据可以绘制到折线图中. 折线图可以显示随时间 (根据常用比例设置) 而变化的连续数据, 因此非常适用于显示在相等时间间隔下数据的趋势.
- from pyecharts import Line3D
- data = [[1, 2, 3, 4], [1, 2, 3, 4], [0, 4, 8, 16]]
- Line3D = Line3D("3D 折线图示例", width=1200, height=600)
- Line3D.add("", data, is_visualmap=True)
- Line3D.render('F:\pye\3D 折线图. html') # 在指定目录下生成文件
image
仪表盘
仪表盘图的效果如下图所示, 图中指针指向的位置是当前的数值.
- from pyecharts import Gauge
- gauge = Gauge('项目完成进度')
- gauge.add('进度表', '完成率', 88.88)
- gauge.render('F:\pye\gauge.html') # 在指定目录下生成文件
image
漏斗图
漏斗图这种方法起源于作业管理领域.
- from pyecharts import Funnel
- attr = ['认知', '了解', '认可', '考虑', '意向', '购买']
- value = [120, 100, 80, 60, 40, 20]
- funnel = Funnel('客户购买分析图')
- funnel.add('买车', attr, value, is_label_show=True, label_pos='inside', label_text_color='#fff')
- funnel.render('F:\pye\funel.html') # 在指定目录下生成文件
image
地图
以下数据是模拟的数据, 为了画图展示用的, 没有参考价值.
- from pyecharts import Geo
- data = [
- ("上海", 25), ("北京", 36), ("武汉", 23), ("舟山", 12), ("齐齐哈尔", 14), ("盐城", 15),
- ("赤峰", 16), ("青岛", 18), ("乳山", 18), ("金昌", 19), ("泉州", 21), ("莱西", 21),
- ("日照", 21), ("胶南", 22), ("南通", 23), ("拉萨", 24), ("云浮", 24), ("梅州", 25)]
- geo = Geo('主要城市空气质量', 'PM2.5', title_color='#fff', title_pos='center',
- width=1200, height=600, background_color='#404a59')
- attr, value = geo.cast(data)
- geo.add('', attr, value, visual_range=[0, 200], visual_text_color='#fff', symbol_size=15,
- is_visualmap=True, is_piecewise=True, visual_split_number=6)
- geo.render('F:\pye\geo.html') # 在指定目录下生成文件
image
词云图
还记得上次我们用 wordcloud 库画的微信朋友签名词云和摇滚歌手歌词的词云图吧, 用 pyecharts 库也可以画出来. 我们以 IEEE Spectrum 发布的 2018 年度顶级编程语言排行榜作为数据来制作词云图.
- from pyecharts import WordCloud
- language = ['Python', 'C++', 'C', 'Java', 'C#', 'PHP', 'R', 'JavaScript', 'Go', 'Assembly']
- rank = [100, 98.4, 98.2, 97.5, 89.8, 85.4, 83.3, 82.8, 76.7, 74.5]
- wordcloud = WordCloud(width=1500, height=700)
- wordcloud.add('', language, rank, word_size_range=[20, 100])
- wordcloud.render('F:\pye\wc.html') # 在指定目录下生成文件
image
水球图
水球图是一种适合于展现单个百分比数据的图表类型.
- from pyecharts import Liquid
- liquid = Liquid("水球图")
- liquid.add("Liquid", [0.8])
- liquid.show_config()
- liquid.render('F:\pye\sq.html') # 在指定目录下生成文件
image
来源: http://www.jianshu.com/p/769b2ac7a334