300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 如何用pyecharts绘图(堆积折线图 桑基图 玫瑰图 地图 3D弹簧 时间轴轮番图 自定义图)

如何用pyecharts绘图(堆积折线图 桑基图 玫瑰图 地图 3D弹簧 时间轴轮番图 自定义图)

时间:2019-09-26 01:50:34

相关推荐

如何用pyecharts绘图(堆积折线图 桑基图 玫瑰图 地图 3D弹簧 时间轴轮番图 自定义图)

版权声明:本文为CSDN博主「千语_肉丸子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:/u012535605/article/details/80677791

1.基本语法学习

from pyecharts import Barbar = Bar("我的第一个图表", "这里是副标题")bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])# bar.print_echarts_options() # 该行只为了打印配置项,方便调试时使用bar.render() # 生成本地 HTML 文件

add() : 主要方法,用于添加图表的数据和设置各种配置项
print_echarts_options() :打印输出图表的所有配置项
render():默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。
Note: 可以按右边的下载按钮将图片下载到本地,如果想要提供更多实用工具按钮,请在 add() 中设置 is_more_utils 为 True

2.使用主题

from pyecharts import Barbar = Bar("我的第一个图表", "这里是副标题")bar.use_theme('dark') bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90],is_more_utils=True)# bar.print_echarts_options() # 该行只为了打印配置项,方便调试时使用bar.render() # 生成本地 HTML 文件

3.自定义主题

echarts 自带 dark 主题, pyecharts 也就自带了 dark。 echarts-themes-pypkg 提供了 vintage, macarons, infographic, shine 和 roma 主题。

安装主题插件

pip install echarts-themes-pypkg

使用主题:

1.更换单个主题

bar.use_theme("vintage")

2.更换运行环境所有主题

from pyecharts import configure# 将这行代码置于首部configure(global_theme='dark')

import randomfrom pyecharts import Bar#from pyecharts import configure#configure(global_theme='vintage')X_AXIS = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]bar = Bar("我的第一个图表", "这里是副标题")bar.use_theme("roma")bar.add("商家A", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.add("商家B", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.add("商家C", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.add("商家D", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.render()

4.使用pyecharts-snapshot插件保存图形

如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用该插件请确保你的系统上已经安装了 Nodejs 环境。

1.安装phantomjs: conda install phantomjs

2.安装 pyecharts-snapshot : pip install pyecharts-snapshot

2.调用 render 方法 bar.render(path=‘snapshot.png’) 文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer=‘svg’。

import randomfrom pyecharts import Bar#from pyecharts import configure#configure(global_theme='vintage')X_AXIS = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]bar = Bar("我的第一个图表", "这里是副标题")bar.use_theme("roma")bar.add("商家A", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.add("商家B", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.add("商家C", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.add("商家D", X_AXIS, [random.randint(10, 100) for _ in range(6)])bar.render()bar.render(path='snapshot.png')

5.堆积折线图

6.桑基图

7.玫瑰图

8.地图

from pyecharts import Geodata = [("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25),("文登", 25),("上海", 25),("攀枝花", 25),("威海", 25),("承德", 25),("厦门", 26),("汕尾", 26),("潮州", 26),("丹东", 27),("太仓", 27),("曲靖", 27),("烟台", 28),("福州", 29),("瓦房店", 30),("即墨", 30),("抚顺", 31),("玉溪", 31),("张家口", 31),("阳泉", 31),("莱州", 32),("湖州", 32),("汕头", 32),("昆山", 33),("宁波", 33),("湛江", 33),("揭阳", 34),("荣成", 34),("连云港", 35),("葫芦岛", 35),("常熟", 36),("东莞", 36),("河源", 36),("淮安", 36),("泰州", 36),("南宁", 37),("营口", 37),("惠州", 37),("江阴", 37),("蓬莱", 37),("韶关", 38),("嘉峪关", 38),("广州", 38),("延安", 38),("太原", 39),("清远", 39),("中山", 39),("昆明", 39),("寿光", 40),("盘锦", 40),("长治", 41),("深圳", 41),("珠海", 42),("宿迁", 43),("咸阳", 43),("铜川", 44),("平度", 44),("佛山", 44),("海口", 44),("江门", 45),("章丘", 45),("肇庆", 46),("大连", 47),("临汾", 47),("吴江", 47),("石嘴山", 49),("沈阳", 50),("苏州", 50),("茂名", 50),("嘉兴", 51),("长春", 51),("胶州", 52),("银川", 52),("张家港", 52),("三门峡", 53),("锦州", 54),("南昌", 54),("柳州", 54),("三亚", 54),("自贡", 56),("吉林", 56),("阳江", 57),("泸州", 57),("西宁", 57),("宜宾", 58),("呼和浩特", 58),("成都", 58),("大同", 58),("镇江", 59),("桂林", 59),("张家界", 59),("宜兴", 59),("北海", 60),("西安", 61),("金坛", 62),("东营", 62),("牡丹江", 63),("遵义", 63),("绍兴", 63),("扬州", 64),("常州", 64),("潍坊", 65),("重庆", 66),("台州", 67),("南京", 67),("滨州", 70),("贵阳", 71),("无锡", 71),("本溪", 71),("克拉玛依", 72),("渭南", 72),("马鞍山", 72),("宝鸡", 72),("焦作", 75),("句容", 75),("北京", 79),("徐州", 79),("衡水", 80),("包头", 80),("绵阳", 80),("乌鲁木齐", 84),("枣庄", 84),("杭州", 84),("淄博", 85),("鞍山", 86),("溧阳", 86),("库尔勒", 86),("安阳", 90),("开封", 90),("济南", 92),("德阳", 93),("温州", 95),("九江", 96),("邯郸", 98),("临安", 99),("兰州", 99),("沧州", 100),("临沂", 103),("南充", 104),("天津", 105),("富阳", 106),("泰安", 112),("诸暨", 112),("郑州", 113),("哈尔滨", 114),("聊城", 116),("芜湖", 117),("唐山", 119),("平顶山", 119),("邢台", 119),("德州", 120),("济宁", 120),("荆州", 127),("宜昌", 130),("义乌", 132),("丽水", 133),("洛阳", 134),("秦皇岛", 136),("株洲", 143),("石家庄", 147),("莱芜", 148),("常德", 152),("保定", 153),("湘潭", 154),("金华", 157),("岳阳", 169),("长沙", 175),("衢州", 177),("廊坊", 193),("菏泽", 194),("合肥", 229),("武汉", 273),("大庆", 279)]geo = Geo("全国主要城市空气质量", "data from 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)geo.render()

8.画个3D弹簧

9.自定义图形:Grid

bar+line并行

from pyecharts import Bar, Line, Gridattr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]v1 = [5, 20, 36, 10, 75, 90]v2 = [10, 25, 8, 60, 20, 80]bar = Bar("柱状图示例", height=720)bar.add("商家A", attr, v1, is_stack=True)bar.add("商家B", attr, v2, is_stack=True)line = Line("折线图示例", title_top="50%")attr = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]line.add("最高气温",attr,[11, 11, 15, 13, 12, 13, 10],mark_point=["max", "min"],mark_line=["average"],)line.add("最低气温",attr,[1, -2, 2, 5, 3, 2, 0],mark_point=["max", "min"],mark_line=["average"],legend_top="50%",)grid = Grid()grid.add(bar, grid_bottom="60%")grid.add(line, grid_top="60%")grid.render()

scatter+effectscatter串行

from pyecharts import Scatter, EffectScatter, Gridv1 = [5, 20, 36, 10, 75, 90]v2 = [10, 25, 8, 60, 20, 80]scatter = Scatter(width=1200)scatter.add("散点图示例", v1, v2, legend_pos="70%")es = EffectScatter()es.add("动态散点图示例",[11, 11, 15, 13, 12, 13, 10],[1, -2, 2, 5, 3, 2, 0],effect_scale=6,legend_pos="20%",)grid = Grid()grid.add(scatter, grid_left="60%")grid.add(es, grid_right="60%")grid.render()

10.自定义图形overlap:画在同一个图中

from pyecharts import Scatter, EffectScatter, Overlapv1 = [10, 20, 30, 40, 50, 60]v2 = [30, 30, 30, 30, 30, 30]v3 = [50, 50, 50, 50, 50, 50]v4 = [10, 10, 10, 10, 10, 10]es = EffectScatter("Scatter - EffectScatter 示例")es.add("es", v1, v2)scatter = Scatter()scatter.add("scatter", v1, v3)es_1 = EffectScatter()es_1.add("es_1", v1, v4, symbol='pin', effect_scale=5)overlap = Overlap()overlap.add(es)overlap.add(scatter)overlap.add(es_1)overlap.render()

11.同一网页按顺序展示多个图:page

from __future__ import unicode_literalsfrom pyecharts import Bar, Scatter3Dfrom pyecharts import Pagepage = Page() # step 1# barattr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]v1 = [5, 20, 36, 10, 75, 90]v2 = [10, 25, 8, 60, 20, 80]bar = Bar("柱状图数据堆叠示例")bar.add("商家A", attr, v1, is_stack=True)bar.add("商家B", attr, v2, is_stack=True)page.add(bar) # step 2# scatter3Dimport randomdata = [[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) # step 2page.render() # step 3

12.timeline时间线轮播多张图

from pyecharts import Pie, Timelineimport randomattr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]pie_1 = Pie(" 年销量比例", "数据纯属虚构")pie_1.add("秋季", attr, [random.randint(10, 100) for _ in range(6)],is_label_show=True, radius=[30, 55], rosetype='radius')pie_2 = Pie(" 年销量比例", "数据纯属虚构")pie_2.add("秋季", attr, [random.randint(10, 100) for _ in range(6)],is_label_show=True, radius=[30, 55], rosetype='radius')pie_3 = Pie(" 年销量比例", "数据纯属虚构")pie_3.add("秋季", attr, [random.randint(10, 100) for _ in range(6)],is_label_show=True, radius=[30, 55], rosetype='radius')pie_4 = Pie(" 年销量比例", "数据纯属虚构")pie_4.add("秋季", attr, [random.randint(10, 100) for _ in range(6)],is_label_show=True, radius=[30, 55], rosetype='radius')pie_5 = Pie(" 年销量比例", "数据纯属虚构")pie_5.add("秋季", attr, [random.randint(10, 100) for _ in range(6)],is_label_show=True, radius=[30, 55], rosetype='radius')timeline = Timeline(is_auto_play=True, timeline_bottom=0)timeline.add(pie_1, ' 年')timeline.add(pie_2, ' 年')timeline.add(pie_3, ' 年')timeline.add(pie_4, ' 年')timeline.add(pie_5, ' 年')timeline.render()

版权声明:本文为CSDN博主「千语_肉丸子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:/u012535605/article/details/80677791

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。