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画图相关推荐

  1. python 之pyecharts画图:最全地图,词云图,世界地图,省份图,区县图

    python最全画地图,可视化数据,pyecharts画图: https://www.jianshu.com/p/e0b2851672cd Python强大的pyecharts绘画优美图形<二& ...

  2. python怎么安装pyecharts_基于Python安装pyecharts所遇的问题及解决方法

    最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少 ...

  3. 【Python】Pyecharts数据可视化模块练习

    python:Pyecharts数据可视化模块练习 # -*- coding: utf-8 -*- """ Created on Sun Aug 5 22:16:09 2 ...

  4. Python之pyecharts:利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化

    Python之pyecharts:利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化 目录 利用pyecharts绘制2020年11月16日微博话题热度排行榜实时变化 Bar( ...

  5. Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图

    Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图 目录 利用pyecharts绘制地图十多个地区流动轨迹动态图 Geo(GeoChartBase)函数 相关文章 ...

  6. Python之pyecharts:利用pyecharts(十五种风格)绘制2018年~2020年中国互联网Top巨头近三年市值(美元)柱状图

    Python之pyecharts:利用pyecharts(十五种风格)绘制2018年~2020年中国互联网Top巨头近三年市值(美元)柱状图 目录 pyecharts(十五种风格)绘制2018年~20 ...

  7. python中pyecharts模块全局配置_python中pyecharts模块的使用示例

    python中pyecharts模块的使用示例 发布时间:2020-11-24 09:28:53 来源:亿速云 阅读:66 作者:小新 小编给大家分享一下python中pyecharts模块的使用示例 ...

  8. python 学习5--matplotlib画图实践

    python 学习5--matplotlib画图实践 ### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 学习参考: http://www.cnblogs.com/ ...

  9. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法

    最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少 ...

最新文章

  1. Linux_进程管理计划任务
  2. 【django】创建项目子应用
  3. android推送如何推送不在线设备,推送系统从0到1(四):消息如何到达用户设备...
  4. 人工智能之知识图谱-学习笔记
  5. 内存映射文件 写入 卡住_在Java中使用内存映射文件时检测(写入)失败
  6. 分层设计 --java中的几种包
  7. html5页面主题,HTML5页面开发笔记
  8. C#删除文件夹以及删除文件
  9. Intel 64/x86_64/x86/IA-32处理器操作模式/运行模式
  10. 【暴力】LeetCode 300. Longest Increasing Subsequence
  11. 机器学习:更多的数据总是优于更好的算法吗?
  12. vue遍历Map集合
  13. 《程序员修炼之道——从小工到专家》 读书笔记
  14. java openxml word_OpenXml读取word内容的实例
  15. C语言if语句中常见的问题
  16. 游戏开发者“谈虎色变”的游戏审批流程到底是怎么一回事?
  17. Web前端期末大作业--中国港珠澳大桥网页设计(HTML+CSS+JavaScript)实现
  18. 我们怎样制作照片拼图?简单实用的拼图方法来了
  19. socket写超时c语言,设置socket超时时间
  20. ggplot2颜色设置

热门文章

  1. 一文搞清电子认证相关概念:CA、证书、PKI、CSR、SSL、TSL、CRT、CER、PEM、RSA等
  2. python图片相似度计算_python Opencv计算图像相似度过程解析
  3. 基于80C51单片机的经纬度定位显示装置设计
  4. 获FDA紧急批准,检测新冠肺炎心血管并发症的AI算法将在梅奥诊所应用
  5. 100个台阶,一次走一步,走两步,走三步,有多少种可能
  6. 【VTK+有限元后处理】实时剖切视图
  7. 如何编写自己的头文件
  8. EBS INV:客户料号
  9. IDEA插件项目克隆下来后,如何在IDEA中导入?
  10. 计算机科学与技术专业描述是什么,计算机科学与技术专业属于什么门类 计算机科学与技术专业介绍...