python之pyecharts画图
pyecharts简介
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
官方API文档
https://pyecharts.org/#/zh-cn/intro
一、柱状图–竖和横
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(['毛衣','寸衫',"领带",'裤子',"风衣","高跟鞋","袜子"])
bar.add_yaxis('商家A',[114,55,27,101,125,27,105])
bar.add_yaxis('商家B',[57,134,101,22,69,90,129])
bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况",subtitle='A和B公司'),toolbox_opts=opts.ToolboxOpts(is_show=True))
bar.set_series_opts(label_opts=opts.LabelOpts(position="top"))
#bar.render_notebook() # 在 notebook 中展示
bar.render(r"C:\Users\ldw\Desktop\demo\snapshot.html") #生成 html 文件
bar = Bar()
bar.add_xaxis(['毛衣','寸衫',"领带",'裤子',"风衣","高跟鞋","袜子"])
bar.add_yaxis('商家A',[114,55,27,101,125,27,105])
bar.add_yaxis('商家B',[57,134,101,22,69,90,129])
bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况",subtitle='A和B公司'),toolbox_opts=opts.ToolboxOpts(is_show=True))
bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
bar.reversal_axis()
bar.render(r"C:\Users\ldw\Desktop\demo\snapshot1.html")
二、饼图
from pyecharts.charts import Pie
from pyecharts import options as opts
L1 = ["教授","副教授","讲师","助教","其他"]
num = [20,30,10,12,8]
c = Pie()
c.add("",[list(z) for z in zip(L1,num)])
c.set_global_opts(title_opts = opts.TitleOpts(title="Pie-职称比例"),toolbox_opts = opts.ToolboxOpts(is_show=True))
c.set_series_opts(label_opts = opts.LabelOpts(formatter="{b}:{c}"))
c.render(r"C:\Users\ldw\Desktop\demo\snapshot2.html")
三、环形图
from pyecharts.charts import Pie
from pyecharts import options as opts
c = Pie()
L1 = ["教授","副教授","讲师","助教","其他"]
num = [20,30,10,12,8]
c.add("",[list(z) for z in zip(L1,num)],radius=["40%","75%"])
c.set_global_opts(title_opts=opts.TitleOpts(title='Pie圆环'),legend_opts=opts.LegendOpts(orient='vertical',pos_top='5%',pos_left="2%"))
c.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
c.render(r"C:\Users\ldw\Desktop\demo\snapshot3.html")
四、玫瑰图
from pyecharts.charts import Pie
from pyecharts import options as opts
c = Pie()
L1 = ["教授","副教授","讲师","助教","其他"]
num = [20,30,10,12,8]
c.add("",[list(z) for z in zip(L1,num)],radius=["40%","75%"],rosetype="area")
c.set_global_opts(title_opts = opts.TitleOpts(title="玫瑰图"),toolbox_opts = opts.ToolboxOpts(is_show=True),legend_opts=opts.LegendOpts(orient='vertical',pos_top="5%",pos_left="2%"))
c.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}'))
c.render(r"C:\Users\ldw\Desktop\demo\snapshot4.html")
五、散点图
from pyecharts.charts import Scatter
from pyecharts import options as opts
s = Scatter()
week = ['Mon','Thur','Wed','Tues','Fri','Sar','Sun']
s.add_xaxis(week)
s.add_yaxis('商家A',[11,22,33,44,55,66,77])
s.add_yaxis('商家B',[0,10,20,30,40,50,60])
s.set_global_opts(title_opts=opts.TitleOpts(title='散点图'),toolbox_opts = opts.ToolboxOpts(is_show=True),legend_opts = opts.LegendOpts(orient='vertical',pos_top='5%',pos_left="2%"))
s.set_series_opts(label_opts=opts.LabelOpts(position='top'))
#s.render_notebook()s.render(r"C:\Users\ldw\Desktop\demo\snapshot5.html")
六、多图绘制
from pyecharts import options as opts
from pyecharts.charts import Bar,Line,Grid
A = ["小米","三星","华为","苹果","魅族","VIVO","OPPO"]
CA = [100,125,87,90,78,98,118]
B = ["草莓","芒果","葡萄","雪梨","西瓜","柠檬","车厘子"]
CB = [78,95,120,102,88,108,98]
bar = Bar()
bar.add_xaxis(A)
bar.add_yaxis("商家A",CA)
bar.add_yaxis("商家B",CB)
bar.set_global_opts(title_opts=opts.TitleOpts(title="多图绘制"))
bar.render(r"C:\Users\ldw\Desktop\demo\snapshot6.html")line = Line()
line.add_xaxis(B)
line.add_yaxis("商家A",CA)
line.add_yaxis("商家B",CB)
line.set_global_opts(title_opts=opts.TitleOpts(title="2图",pos_top="48%"),legend_opts=opts.LegendOpts(pos_top="48%"))
line.render_notebook()grid = Grid()
grid.add(bar,grid_opts=opts.GridOpts(pos_bottom="60%"))
grid.add(line,grid_opts=opts.GridOpts(pos_top="60%"))
grid.render(r"C:\Users\ldw\Desktop\demo\snapshot6.html")
七、桑基图
#导入需要的包
from pyecharts import options as opts
from pyecharts.charts import Sankey#列全涉及的节点名称
nodes = [{"name": "category1"},{"name": "category2"},{"name": "category3"},{"name": "category4"},{"name": "category5"},{"name": "category6"},
]#节点之间的关系和数量,source起点,target终点,value数量
links = [{"source": "category1", "target": "category2", "value": 10},{"source": "category2", "target": "category3", "value": 15},{"source": "category3", "target": "category4", "value": 20},{"source": "category5", "target": "category6", "value": 25},
]
c = (Sankey(init_opts=opts.InitOpts(width="1200px", height="600px")) #设置图表的宽度和高度.add("sankey",nodes,#读取节点links,#读取路径linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source"),#设置线条样式label_opts=opts.LabelOpts(position="right"),#设置标签配置项node_align=str( "justify"),#设置节点对齐方式:right,left,justify(节点双端对齐)#orient="vertical", #垂直).set_global_opts(title_opts=opts.TitleOpts(title="Sankey-基本示例"))#表名.render(r"C:\Users\ldw\Desktop\demo\snapshot8.html")#保存html文件
)
八、词云
from pyecharts import options as opts
from pyecharts.charts import Page,WordCloud
from pyecharts.globals import SymbolType
words = [("牛肉面",7800),("黄河",6181),("《读者》",4386),("水晶饺子",3055),("雨燕中学",4244),("碣石文化广场",2055),("玄武山",8067),("华工",1868),("十一孔",3483),("宋瘄寮",1122),("石洲",980),("红白",1111),("Beautyleg",3000),("Winnie",6666),("toxic_妲己",2222),("绯月樱",4444)
]
c = WordCloud()
c.add("",words,word_size_range=[10,70])
c.set_global_opts(title_opts=opts.TitleOpts(title="词云"))
c.render(r"C:\Users\ldw\Desktop\demo\snapshot9.html")
九、地图
from pyecharts import options as optsfrom
from pyecharts.charts import Map#数据截至 2020/2/29 22:14 现存确诊
data = [['湖北', 34617], ['广东', 366], ['山东', 332], ['浙江', 188], ['四川', 184], ['湖南', 170], ['黑龙江', 166], ['重庆', 148],['北京', 132], ['江西', 123], ['安徽', 116], ['江苏', 108], ['河南', 81], ['广西', 74], ['香港', 62], ['福建', 53],['上海', 47], ['陕西', 37], ['贵州', 32], ['河北', 31], ['台湾', 29], ['内蒙古', 26], ['辽宁', 25], ['天津', 24],['山西', 20], ['吉林', 17], ['海南', 16], ['云南', 15], ['新疆', 11], ['甘肃', 7], ['宁夏', 4], ['澳门', 2], ['青海', 0], ['西藏', 0]]
map = ( Map() .add("现存确诊", data, "china") .set_global_opts( title_opts=opts.TitleOpts(title="现存确诊疫情地图"), visualmap_opts=opts.VisualMapOpts(max_=35000, is_piecewise=True, pieces=[ {"min": 10000, "label": '>10000人', "color": "#6666CC"}, {"min": 1000, "max": 10000, "label": '1001-10000人', "color": "#9999FF"}, {"min": 500, "max": 999, "label": '999-1000人', "color": "#CCCCFF"}, {"min": 100, "max": 499, "label": '100-499人', "color": "#FF9999"}, {"min": 10, "max": 99, "label": '10-99人', "color": "#FFCCCC"}, {"min": 1, "max": 9, "label": '0-9人', "color": "#CCCCCC"}, {"min": 0, "max": 0, "label": '0人', "color": "#ffffff"}, ],), ) )
map.render(r"C:\Users\ldw\Desktop\demo\snapshot10.html")
十、销售转化漏斗
from pyecharts import options as optsfrom
from pyecharts.charts import Funnel
from pyecharts.globals import ThemeType
labels = ['浏览人数', '加购人数', '购买人数']
data = [100, 50, 30]
funnel = ( Funnel(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add("", [list(z) for z in zip(labels, data)], label_opts=opts.LabelOpts(position="inside")) .set_global_opts(title_opts=opts.TitleOpts(title="销售转化漏斗")) )
funnel.render(r"C:\Users\ldw\Desktop\demo\snapshot11.html")
十一、多维散点图
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts.commons.utils import JsCode
Scatter = ( Scatter(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(Faker.choose()) .add_yaxis( "商家A", [list(z) for z in zip(Faker.values(), Faker.choose())], label_opts=opts.LabelOpts( formatter=JsCode( "function(params){return params.value[1] +' : '+ params.value[2];}" ), #position="inside" ), ) .set_global_opts( title_opts=opts.TitleOpts(title="Scatter-多维度数据"), tooltip_opts=opts.TooltipOpts( formatter=JsCode( "function (params) {return params.name + ' : ' + params.value[2];}" )), visualmap_opts=opts.VisualMapOpts( type_="size", max_=150, min_=20, dimension=1 ),) )
Scatter.render(r"C:\Users\ldw\Desktop\demo\snapshot12.html")
十二、多饼图
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.commons.utils import JsCode
fn = """ function(params) { if(params.name == '其他') return '\\n\\n\\n' + params.name + ' : ' + params.value + '%'; return params.name + ' : ' + params.value + '%'; } """
def new_label_opts(): return opts.LabelOpts(formatter=JsCode(fn), position="center")
c = (Pie() .add( "", [list(z) for z in zip(["剧情", "其他"], [25, 75])], center=["20%", "30%"], radius=[60, 80], label_opts=new_label_opts(), ) .add( "", [list(z) for z in zip(["奇幻", "其他"], [24, 76])], center=["55%", "30%"], radius=[60, 80], label_opts=new_label_opts(), ) .add( "", [list(z) for z in zip(["爱情", "其他"], [14, 86])], center=["20%", "70%"], radius=[60, 80], label_opts=new_label_opts(), ) .add( "", [list(z) for z in zip(["惊悚", "其他"], [11, 89])], center=["55%", "70%"], radius=[60, 80], label_opts=new_label_opts(), ) .set_global_opts( title_opts=opts.TitleOpts(title="Pie-多饼图示例"), legend_opts=opts.LegendOpts( type_="scroll", pos_top="20%", pos_left="80%", orient="vertical" ), ) )
c.render(r"C:\Users\ldw\Desktop\demo\snapshot13.html")
十三、添加标记点
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
y1 = [5, 20, 36, 10, 75, 90]
y2 = [15, 6, 45, 20, 35, 66]# 通过markpoint_opts添加标记点
bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
.add_xaxis(x)
.add_yaxis("商家A", y1)
.add_yaxis("商家B", y2)
.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="最小值"), ] ), ) .set_global_opts(title_opts=opts.TitleOpts(title="主题为DARK", subtitle="最大值、最小值标记点")))
bar.render(r"C:\Users\ldw\Desktop\demo\snapshot14.html")
python之pyecharts画图相关推荐
- python 之pyecharts画图:最全地图,词云图,世界地图,省份图,区县图
python最全画地图,可视化数据,pyecharts画图: https://www.jianshu.com/p/e0b2851672cd Python强大的pyecharts绘画优美图形<二& ...
- python怎么安装pyecharts_基于Python安装pyecharts所遇的问题及解决方法
最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少 ...
- 【Python】Pyecharts数据可视化模块练习
python:Pyecharts数据可视化模块练习 # -*- coding: utf-8 -*- """ Created on Sun Aug 5 22:16:09 2 ...
- Python之pyecharts:利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化
Python之pyecharts:利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化 目录 利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化 Bar( ...
- Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图
Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图 目录 利用pyecharts绘制地图十多个地区流动轨迹动态图 Geo(GeoChartBase)函数 相关文章 ...
- Python之pyecharts:利用pyecharts(十五种风格)绘制2018年~2020年中国互联网Top巨头近三年市值(美元)柱状图
Python之pyecharts:利用pyecharts(十五种风格)绘制2018年~2020年中国互联网Top巨头近三年市值(美元)柱状图 目录 pyecharts(十五种风格)绘制2018年~20 ...
- python中pyecharts模块全局配置_python中pyecharts模块的使用示例
python中pyecharts模块的使用示例 发布时间:2020-11-24 09:28:53 来源:亿速云 阅读:66 作者:小新 小编给大家分享一下python中pyecharts模块的使用示例 ...
- python 学习5--matplotlib画图实践
python 学习5--matplotlib画图实践 ### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 学习参考: http://www.cnblogs.com/ ...
- python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法
最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少 ...
最新文章
- Linux_进程管理计划任务
- 【django】创建项目子应用
- android推送如何推送不在线设备,推送系统从0到1(四):消息如何到达用户设备...
- 人工智能之知识图谱-学习笔记
- 内存映射文件 写入 卡住_在Java中使用内存映射文件时检测(写入)失败
- 分层设计 --java中的几种包
- html5页面主题,HTML5页面开发笔记
- C#删除文件夹以及删除文件
- Intel 64/x86_64/x86/IA-32处理器操作模式/运行模式
- 【暴力】LeetCode 300. Longest Increasing Subsequence
- 机器学习:更多的数据总是优于更好的算法吗?
- vue遍历Map集合
- 《程序员修炼之道——从小工到专家》 读书笔记
- java openxml word_OpenXml读取word内容的实例
- C语言if语句中常见的问题
- 游戏开发者“谈虎色变”的游戏审批流程到底是怎么一回事?
- Web前端期末大作业--中国港珠澳大桥网页设计(HTML+CSS+JavaScript)实现
- 我们怎样制作照片拼图?简单实用的拼图方法来了
- socket写超时c语言,设置socket超时时间
- ggplot2颜色设置
热门文章
- 一文搞清电子认证相关概念:CA、证书、PKI、CSR、SSL、TSL、CRT、CER、PEM、RSA等
- python图片相似度计算_python Opencv计算图像相似度过程解析
- 基于80C51单片机的经纬度定位显示装置设计
- 获FDA紧急批准,检测新冠肺炎心血管并发症的AI算法将在梅奥诊所应用
- 100个台阶,一次走一步,走两步,走三步,有多少种可能
- 【VTK+有限元后处理】实时剖切视图
- 如何编写自己的头文件
- EBS INV:客户料号
- IDEA插件项目克隆下来后,如何在IDEA中导入?
- 计算机科学与技术专业描述是什么,计算机科学与技术专业属于什么门类 计算机科学与技术专业介绍...