jupyter notebook第八章pyecharts库的一些案例分析加相关函数的解析

目录

前言

相关案例与解析

写在最后:


前言

pyecharts是基于Echart图表的一个类库,而Echart是百度开源的一个可视化JavaScript库。
pyecharts主要基于web浏览器进行显示,绘制的图形比较多,包括折线图、柱状图、饼图、漏斗图、地图、极坐标图等,代码量很少,而且很灵活,绘制出来的图形很美观。
使用pyecharts时,需要安装相应的库,安装命令为:
     pip install pyecharts
 

相关案例与解析

import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
%matplotlib inline #在线显示
pyecharts是基于Echart图表的一个类库,而Echart是百度开源的一个可视化JavaScript库。
pyecharts主要基于web浏览器进行显示,绘制的图形比较多,包括折线图、柱状图、饼图、漏斗图、地图、极坐标图等,代码量很少,而且很灵活,绘制出来的图形很美观。
图形绘制过程,基本上所有的图表类型都是这样绘制的:
chart_name = Type()      #初始化具体类型图表
chart_name .add()         #添加数据及配置项
chart_name .render() 
#生成本地文件(html/svg/jpeg/png/pdf/gif)
chart_name .render_notebook  #在jupyter notebook中显示

 
利用Bar方法可以绘制柱状图:
方法使用说明
add_xaxis加入x轴参数
add_yaxis加入y轴参数,可以设置y轴参数,也可在全局设置中设置
set_global_opts全局配置设置
set_series_opts系列配置设置

例8-1 使用Bar函数绘制柱状图

In [13]:

bar = (Bar(opts.InitOpts(width = '360px',height = '280px'))#修改宽度和高度
       .add_xaxis(['衬衫','毛衣','领带','裤子','风衣','高跟鞋','袜子'])#x轴
       .add_yaxis('商家A',[114,55,27,101,125,27,105])#y轴
       .set_global_opts(title_opts = opts.TitleOpts(title = '某商场销售情况')))
#set_global_opts设置全局配置设置
bar.render_notebook()
#bar.render

Out[13]:

 

V1版本开始支持链式调用,如果不习惯链式调用的开发者依旧可以单独调用方法,上面代码为:
使用多个add_yaxis可以绘制并列柱状图。 

In [14]:

#单独调用方法
bar = Bar(opts.InitOpts(width = '360px',height = '280px'))
bar.add_xaxis(['衬衫','毛衣','领带','裤子','风衣','高跟鞋','袜子'])
bar.add_yaxis('商家A',[114,55,27,101,125,27,105])
bar.set_global_opts(title_opts = opts.TitleOpts(title = '某商场销售情况'))
bar.render_notebook()

Out[14]:

 

例8-2 绘制并列柱状图

In [15]:

bar = Bar(opts.InitOpts(width = '600px',height = '400px'))
bar.add_xaxis(['衬衫','毛衣','领带','裤子','风衣','高跟鞋','袜子'])
bar.add_yaxis('商家A',[114,55,27,101,125,27,105])
bar.add_yaxis('商家B',[57,143,137,129,145,60,49])
bar.set_global_opts(title_opts = opts.TitleOpts(title = '货品销售情况',
 subtitle = 'A和B公司'))
bar.render_notebook()

Out[15]:

 

例8-3 绘制水平直方图

In [16]:

bar = Bar(opts.InitOpts(width = '660px',height = '480px'))
bar.add_xaxis(['衬衫','毛衣','领带','裤子','风衣','高跟鞋','袜子'])
bar.add_yaxis('商家A',[114,55,27,101,125,27,105])
bar.add_yaxis('商家B',[57,143,137,129,145,60,49])
bar.set_global_opts(title_opts = opts.TitleOpts(title = '货品销售情况',
 subtitle = 'A和B公司'),toolbox_opts = opts.ToolboxOpts(is_show = True))
#subtitle 设置副标题 ToolboxOpts工具栏
bar.set_series_opts(label_opts = opts.LabelOpts(position = 'right'))
#set_series_opts系列配置设置  position = 'right'显示在右侧
bar.reversal_axis()#将轴逆向
bar.render_notebook()

Out[16]:

 

 
饼图常用于表现不同类别的占比情况。利用Pie方法可以绘制饼图

例8-4 绘制饼图

In [17]:

from pyecharts.charts import Pie#引入pie模块
L1 = ['教授','副教授','讲师','助教','其他']#定义两个列表
num = [20,30,10,12,8]
c = Pie(opts.InitOpts(width = '660px',height = '480px'))#修改尺寸
c.add("",[list(z) for z in zip(L1,num)])
#""表示不加饼图名称  饼图里面的是元组数据 list里面的数据需要配对成元组
c.set_global_opts(title_opts = opts.TitleOpts(title = 'Pie-职称类别比例'))
c.set_series_opts(label_opts = opts.LabelOpts(formatter = "{b} : {c}"))
#formatter = "{b} : {c}"b指的时L1,c指的是数字 如果为ab,则a指的是series[]0 a指的是系列
c.render_notebook()

Out[17]:

 

例8-5 绘制圆环饼图

In [18]:

from pyecharts.charts import Pie
wd = ['教授','副教授','讲师','助教','其他']
num = [20,30,10,12,8]
c = Pie(opts.InitOpts(width = '660px',height = '380px'))
c.add("",[list(z) for z in zip(wd,num)],radius = ['40%','75%'])
#radius = ['40%','75%']前面是内径,后面是外径
c.set_global_opts(title_opts = opts.TitleOpts(title = 'Pie-Radius'),#名称
                 legend_opts = opts.LegendOpts(orient = 'vertical',pos_top = '5%',pos_left = '2%'))
#legend_opts 默认居中显示 orient将legend的方向改为竖向【verticalc】  pos_top距离上面5%距离左2%
c.set_series_opts(label_opts = opts.LabelOpts(formatter = "{b} : {c}"))
c.render_notebook()

Out[18]:

 

例8-6 圆形饼图中的rich参数应用

In [19]:

from pyecharts.charts import Pie
wd = ['教授','副教授','讲师','助教','其他']
num = [20,30,10,12,8]
c = Pie(opts.InitOpts(width = '660px',height = '480px'))
c.add("",[list(z) for z in zip(wd,num)],radius = ['40%','55%'],
     label_opts = opts.LabelOpts(position = 'outside',
                                 formatter = "{a|{a}}{abg|}\n{hr|}\n{b|{b} :}{c} {per|{d}%}",
                                background_color = '#eee',border_color = "#aaa",
                                border_width = 1,border_radius = 4,
                                rich = {"a":{"color":"#999","lineHeight":22,"align":"center"},
                                       "abg":{"backgroundColor":"#e3e3e3","width":"100%","align":"right",
                                              "height":22,"borderRadius":{4,4,0,0,0}},
                                       "hr":{"borderColor":"#aaa","width":"100%","borderWidth":0.5,"height":0},
                                       "b":{"fontSize":16,"lineHeight":33},
                                       "per":{"color":"#eee","backgroundColor":"#334455","padding":[2,4],"borderRadius":2}}))
#label_opts 标签  position = 'outside'默认在里面【inside】,此处在外面显示
#formatter富文本的添加 后面加上颜色 大小 圆角
#rich参数的使用 a是富文本的号 设置其颜色,高度,居中  hr设置的文本里面的中间的线 per是百分比的设置
c.set_global_opts(title_opts = opts.TitleOpts(title = 'Pie-富文本示例'))
c.render_notebook()

Out[19]:

 

例8-7 绘制玫瑰图

In [20]:

from pyecharts.charts import Pie
wd = ['教授','副教授','讲师','助教','其他']
num = [20,30,10,12,8]
c = Pie(opts.InitOpts(width = '660px',height = '380px'))
c.add("",[list(z) for z in zip(wd,num)],radius = ['40%','55%'],
      center = [200,220],rosetype = 'radius')
#center = [200,220]进行平移 rosetype = 'radius'玫瑰图扇区的圆心角【展示圆心的百分比】半径展现数据的大小
c.add("",[list(z) for z in zip(wd,num)],radius = ['40%','55%'],
      center = [450,220],rosetype = 'area')#area平均的圆心角相同 仅通过半径大小展示数据的大小
c.set_global_opts(title_opts = opts.TitleOpts(title = '玫瑰图'))
c.render_notebook()

Out[20]:

 

例8-8 绘制漏斗图https://blog.csdn.net/Tomandjava/article/details/117198522?
(https://blog.csdn.net/Tomandjava/article/details/117198522?

In [21]:

from pyecharts.charts import Funnel
data = [45,86,39,52,68]
labels = ['计算机','手机','电视机','冰箱','洗衣机']
wf = Funnel(opts.InitOpts(width = '560px',height = '380px'))
wf.add('电器销售图',[list(z) for z in zip(labels,data)],is_selected = True)
#is_selected = True初始就选中所有图例
wf.render_notebook()

Out[21]:

 

例8-9 绘制散点图

In [22]:

from pyecharts.charts import Scatter
week = ['周一','周二','周三','周四','周五','周六','周日']
c = Scatter(opts.InitOpts(width = '660px',height = "380px"))
c.add_xaxis(week)#x轴
c.add_yaxis("商家A",[81,65,48,32,68,92,87])#加入与前面的一一对应
c.set_global_opts(title_opts = opts.TitleOpts(title = "Scatter-一周销售额(万元)"))
c.render_notebook()

Out[22]:

 

例8-10 绘制K线图 [pyecharts学习笔记]——全局配置项(AxisOpts坐标轴配置项)_卖山楂啦prss的博客-CSDN博客_pyecharts 坐标轴位置 ([pyecharts学习笔记]——全局配置项(AxisOpts坐标轴配置项)_卖山楂啦prss的博客-CSDN博客_pyecharts 坐标轴位置)

In [23]:

from pyecharts.charts import Kline
data = [[2320.26, 2320.26, 2287.3, 2362.94],
        [2300, 2291.3, 2288.26, 2308.38],
        [2295.35, 2346.5, 2295.35, 2345.92],
        [2347.22, 2358.98, 2337.35, 2363.8], 
        [2360.75, 2382.48, 2347.89, 2383.76],
        [2383.43, 2385.42, 2371.23, 2391.82],
        [2377.41, 2419.02, 2369.57, 2421.15],
        [2425.92, 2428.15, 2417.58, 2440.38],
        [2411, 2433.13, 2403.3, 2437.42],
        [2432.68, 2334.48, 2427.7, 2441.73],
        [2430.69, 2418.53, 2394.22, 2433.89],
        [2416.62, 2432.4, 2414.4, 2443.03], 
        [2441.91, 2421.56, 2418.43, 2444.8],
        [2420.26, 2382.91, 2373.53, 2427.07], 
        [2383.49, 2397.18, 2370.61, 2397.94],
        [2378.82, 2325.95, 2309.17, 2378.82], 
        [2322.94, 2314.16, 2308.76, 2330.88],
        [2320.62, 2325.82, 2315.01, 2338.78], 
        [2313.74, 2293.34, 2289.89, 2340.71],
        [2297.77, 2313.22, 2292.03, 2324.63], 
        [2322.32, 2365.59, 2308.92, 2366.16],
        [2364.54, 2359.51, 2330.86, 2369.65], 
        [2332.08, 2273.4, 2259.25, 2333.54], 
        [2274.81, 2326.31, 2270.1, 2328.14], 
        [2333.61, 2347.18, 2321.6, 2351.44], 
        [2340.44, 2324.29, 2304.27, 2352.02], 
        [2326.42, 2318.61, 2314.59, 2333.67],
        [2314.68, 2310.59, 2296.58, 2320.96], 
        [2309.16, 2286.6, 2264.83, 2333.29], 
        [2282.17, 2263.97, 2253.25, 2286.33], 
        [2255.77, 2270.28, 2253.31, 2276.22] ]
c = Kline(opts.InitOpts(width = '660px',height = '380px'))
c.add_xaxis(["2019/7/{}".format(i+1) for i in range(31)])#x轴加的是2019年的7月几号
c.add_yaxis("2019年7月份K线图",data)
#全局参数的设置
c.set_global_opts(yaxis_opts = opts.AxisOpts(is_scale = True),
                  # 只在数值轴中(type: 'value')有效
                  # 是否是脱离 0 值比例。设置成 true 后坐标刻度不会强制包含零刻度。在双数值轴的散点图中比较有用。
                  # 在设置 min 和 max 之后该配置项无效。
                 xaxis_opts = opts.AxisOpts(is_scale = True),#is_scale = True是否显示 x 轴。
                 title_opts = opts.TitleOpts(title = "Kline - 基本示例"))
c.render_notebook()

Out[23]:

 

例8-11 绘制仪表盘 使用 Pyecharts 制作Gauge(仪表盘) - 知乎 (使用 Pyecharts 制作Gauge(仪表盘) - 知乎)

In [24]:

#车的转速,车速
from pyecharts.charts import Gauge,Page
c = Gauge(opts.InitOpts(width = "600px",height = '380px'))
#指示针的颜色与数值所属区间的颜色一致
c.add("业务指标",[("完成率",55.5)],axisline_opts = opts.AxisLineOpts(
     linestyle_opts = opts.LineStyleOpts(color = [(0.3,"#67e0e3"),(0.7,"#37a2da"),(1,"#fd666d")],width = 30)),
      #改变颜色 加上宽度
     detail_label_opts=opts.LabelOpts(formatter="{value}%",font_size=22, color="black", font_family="Microsoft YaHei"))
      #加上他的形式
c.set_global_opts(title_opts = opts.TitleOpts(title = "Gauge - 不听颜色"),
                 legend_opts = opts.LegendOpts(is_show = False))#将业务指标去掉
c.render_notebook()

Out[24]:

 

例8-12 绘制词云

 
一、 安装需要的包
(1)WordCloud 
(2)jieba
    conda install -c conda-forge jieba
二、 词云生成过程
一般生成词云的过程为:
(1)首先使用pandas读取数据并将需要分析的数据转化为列表;
(2)对获得的列表数据利用分词工具jieba进行遍历分词;
(3)使用WordCloud设置词云图片的属性、掩码和停用词,并  生成词云图像。

In [25]:

from pyecharts.charts import Page,WordCloud
from pyecharts.globals import SymbolType
words = words = [("牛肉面",7800),("黄河",6181),
                ("《读者》杂志", 4386), ("甜胚子", 3055),
                ("甘肃省博物馆", 2055),("莫高窟", 8067),("兰州大学", 4244),
                ("西北师范大学", 1868),("中山桥", 3484),
                ("月牙泉", 1112),("五泉山", 980),
                ("五彩丹霞", 865),("黄河母亲", 847),("崆峒山",678),
                ("羊皮筏子", 1582),("兴隆山",868),
                ("兰州交通大学", 1555),("白塔山", 2550),("五泉山", 2550)]
c = WordCloud(opts.InitOpts(width = '600px',height = '380px'))
c.add("",words,word_size_range = [20,60])#word_size_range最小字和最大字的范围
c.set_global_opts(title_opts = opts.TitleOpts(title = 'WordCloud - 基本示例'))
c.render_notebook()

Out[25]:

 

例8-13 组合图表上下布局

In [26]:

from pyecharts.charts import Bar,Grid,Line,Scatter
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 = 'Grid - Bar'))
bar.render_notebook()
#折线图
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 = 'Grid - Line',pos_top = "48%"),
                     legend_opts = opts.LegendOpts(pos_top = "48%"))
#距离上侧48%
line.render_notebook()
grid = Grid(opts.InitOpts(width = '600px',height = '580px'))#用grid分图
grid.add(bar,grid_opts = opts.GridOpts(pos_bottom = "60%"))#bar距离底部60%的地方加入
grid.add(line,grid_opts = opts.GridOpts(pos_top = "60%"))#line距离顶部60%的地方加入
# grid.add(bar,grid_opts = opts.GridOpts(pos_left = "50%"))
# grid.add(line,grid_opts = opts.GridOpts(pos_right = "50%"))
grid.render_notebook()
​

Out[26]:

 

例8-14 桑基图绘制示例

In [27]:

#宽度对应于数据流量的大小,应用与能量,材料成分金融
from pyecharts.charts import Sankey
df = pd.DataFrame({'性别':['男','男','男','女','女','女'],
                  '熬夜原因':['打游戏','看剧','加班','打游戏','看剧','加班'],
                  '人数':[40,20,40,8,25,36]})
#print(df)
nodes = []#设置一个空列表
for i in range(2):
    values = df.iloc[:,i].unique()#:所有的行 和列,去掉重复值
    for value in values:
        dic = {}#字典
        dic['name'] = value#加了名称
        nodes.append(dic)#生成一个value就往dic里面加入
        #这些执行完成之后是将nodes里面放入数据
#print(df.values)
links = []#空列表
for i in df.values:#从df当中取值
    dic = {}
    dic['source'] = i[0]#source读取第0列
    dic['target'] = i[1]
    dic['value'] = i[2]
    links.append(dic)
#print(links)
c =  (Sankey(opts.InitOpts(width = '600px',height = '380px'))
      .add("sankey",nodes,links,#添加数据
           linestyle_opt = opts.LineStyleOpts(opacity = 0.2,curve = 0.5,color = 'source'),
           #opacity透明度  curve弯曲度  加入颜色
           label_opts = opts.LabelOpts(position = 'right'),node_gap=25)
           #标签设置到右侧  node_gap标签的间距调整
           .set_global_opts(title_opts = opts.TitleOpts(title = "Sankey - 熬夜原因")))
c.render_notebook()

Out[27]:

 

例8-15 pyecharts绘制平行坐标图示例

In [3]:

#多属性值之间的关系
from pyecharts.charts import Parallel
import seaborn as sns
import numpy as np
data = pd.read_csv('iris.csv')
#data
data_1 = np.array(data[['Sepal.Length','Sepal.Width','Petal.Length','Petal.Width']]).tolist()
#array生成数组之后用tolist()抓换为列表
#data_1
parallel_axis = [{"dim":0,"name":"萼片长度"},#轴
                {"dim":1,"name":"萼片宽度"},
                {"dim":2,"name":"花瓣长度"},
                {"dim":3,"name":"花瓣宽度"}]
parallel = Parallel(init_opts = opts.InitOpts(width = '600px',height = '400px'))
#绘制图纸
parallel.add_schema(schema = parallel_axis)#加平行坐标的坐标轴
parallel.add('iris平行坐标图',data = data_1,
             linestyle_opts = opts.LineStyleOpts(width = 4,opacity = 0.5))
#设置线宽  opacity = 0.5设置透明度
parallel.render_notebook()

Out[3]:

 

例8-16 绘制指定结点和边的图

In [4]:

#顶点之间的关联关系
from pyecharts.charts import Graph
nodes_data = [
    opts.GraphNode(name = '结点1',symbol_size = 18),#节点名称和节点大小
    opts.GraphNode(name = '结点2',symbol_size = 20),
    opts.GraphNode(name = '结点3',symbol_size = 15),
    opts.GraphNode(name = '结点4',symbol_size = 30),
    opts.GraphNode(name = '结点5',symbol_size = 25),
    opts.GraphNode(name = '结点6',symbol_size = 15),
]
links_data = [
    opts.GraphLink(source = '结点1',target = '结点2',value = 2),
    #边的起始点和结束点,以及权值
    opts.GraphLink(source = '结点1',target = '结点4',value = 7),
    opts.GraphLink(source = '结点1',target = '结点6',value = 5),
    opts.GraphLink(source = '结点2',target = '结点3',value = 3),
    opts.GraphLink(source = '结点2',target = '结点6',value = 5),
    opts.GraphLink(source = '结点3',target = '结点4',value = 4),
    opts.GraphLink(source = '结点3',target = '结点5',value = 7),
    opts.GraphLink(source = '结点4',target = '结点5',value = 5),
    opts.GraphLink(source = '结点4',target = '结点6',value = 4),
    opts.GraphLink(source = '结点5',target = '结点6',value = 6),
    opts.GraphLink(source = '结点6',target = '结点1',value = 7),
]
c = Graph(init_opts = opts.InitOpts(width = '600px',height = '400px'))#初始参数
c.add("",nodes_data,links_data,repulsion = 4000)#repulsion = 4000斥力效果,图的弹性效果
c.set_global_opts(title_opts = opts.TitleOpts(title = "Graph - Example"))
c.render_notebook()

Out[4]:

自从 0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表(Geo、Map),可自行安装对应的地图文件包。

Windows下通过以下的pip命令进行安装:
#安装全球国家地图,包括世界地图和 213 个国家
pip install echarts-countries-pypkg 
#安装中国省级地图,包括23 个省,5 个自治区
pip install echarts-china-provinces-pypkg 
 #中国市级地图,包括370 个中国城市
pip install echarts-china-cities-pypkg 

In [28]:

from pyecharts.charts import Map
temperature = [30,31,27,29,18]
loc = ['兰州市','天水市','白银市','武威市','甘南藏族自治区']
c = Map(init_opts = opts.InitOpts(width = '600px',height = '400px'))
c.add("甘肃省",[list(z) for z in zip(loc,temperature)],"甘肃",is_roam = True)
#两个;列表组合起来  is_roam = True开启鼠标缩放 改为false之后就不可以缩放了
c.render_notebook()

Out[28]:

 

地理方位流动图

In [30]:

from pyecharts.charts import Geo
from pyecharts.globals import ChartType,SymbolType
c = (Geo(init_opts = opts.InitOpts(width = '600px',height = '400px'))
    .add_schema(maptype = "china")#类型是中国
    .add("航班",[("哈尔滨",66),("重庆",88),("上海",100),("乌鲁木齐",30),("北京",30),("兰州",170)],
        type_ = ChartType.EFFECT_SCATTER,color = "green")
     #加入省市之间的航班  type_ = ChartType.EFFECT_SCATTER【点的类型为带波纹的点】
    .add("地方",[("北京","兰州"),("兰州","北京"),("重庆","杭州"),("哈尔滨","重庆"),("乌鲁木齐","哈尔滨")],
        type_ = ChartType.LINES,#线的类型
         #箭头的反映  symbol_size尺寸为6 动态效果颜色为蓝色
        effect_opts = opts.EffectOpts(symbol = SymbolType.ARROW,symbol_size = 6,color = "blue"),
        linestyle_opts = opts.LineStyleOpts(curve = 0.2))#设置曲度
    .set_series_opts(label_opts = opts.LabelOpts(is_show = False))#去掉主要航线标签
    .set_global_opts(title_opts = opts.TitleOpts(title = "主要城市航班路线和数量")))
c.render_notebook()

Out[30]:

实训1 绘制统计某天多省区连续确认病例无新增天数的玫瑰图

In [31]:

from pyecharts import options as opts
from pyecharts.charts import Pie
import pandas as pd
provinces = ['北京','上海','黑龙江','吉林','辽宁','内蒙古','新疆','西藏','青海',
             '四川','云南','陕西','重庆','贵州','广西','海南','澳门','湖南','江西',
             '福建','安徽','浙江','江苏','宁夏','山西','河北','天津']
num = [1,1,1,17,9,22,23,42,35,7,20,21,16,24,16,21,37,12,13,14,13,7,22,8,16,13,13]
df = pd.DataFrame({'provinces':provinces,'num':num})
df.sort_values(by = 'num',ascending = False,inplace = True)#df本身排序
v = df['provinces'].values.tolist()#取df里面的数据转换为列表
d = df['num'].values.tolist()
c = Pie(init_opts = opts.InitOpts(width = '720px',height = '600px'))#初始化饼图
c.add("",[list(z) for z in zip(v,d)],
      radius = ["30%","80%"],center = ["50%","50%"],#位置变成横向和纵向50%
      rosetype = "area")#只用半径展示数据大小
color_series = ['#FAE927','#E9E416','#C9DA36','#9ECB3C','#6DBC49',
                 '#37B44E','#3DBA78','#14ADCF','#209AC9','#1E91CA',
                 '#2C6BA0','#2B55A1','#2D3D8E','#44388E','#6A368B',
                 '#7D3990','#A63F98','#C31C88','#D52178','#D5225B',
                 '#D02C2A','#D44C2D','#F57A34','#FA8F2F','#D99D21',
                 '#CF7B25','#CF7B25','#CF7B25']#重新添加颜色值
c.set_colors(color_series)#插入颜色值
c.set_global_opts(title_opts = opts.TitleOpts(title = '多省区市\n确诊病例连续多日',subtitle = '零新增',#图集主和子标签
 title_textstyle_opts = opts.TextStyleOpts(font_size = 25,color = '#0085c3'),
 subtitle_textstyle_opts = opts.TextStyleOpts(font_size = 50,color = '#003399'),
 pos_right = 'center',pos_left = "center",pos_top ="42%",pos_bottom = 'center'),
 legend_opts = opts.LegendOpts(is_show = False),toolbox_opts = opts.ToolboxOpts)#工具栏
#标签的设置
c.set_series_opts(label_opts = opts.LabelOpts(is_show = True,position = "inside",#inside不引出来内部显示
                                              font_size = 12,formatter = "{b}:{c}天",#形式
                                              font_style = 'italic',font_weight = 'bold',#类型是斜体【italic】加粗
                                              font_family = "SimHei"))#黑体
c.render_notebook()

Out[31]:

 

  1. 绘制数据的柱状图 [pyecharts学习笔记]——Bar 柱状图/条形图_卖山楂啦prss的博客-CSDN博客_pyecharts bar负数 ([pyecharts学习笔记]——Bar 柱状图/条形图_卖山楂啦prss的博客-CSDN博客_pyecharts bar负数)

In [9]:

from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
items = ['相机','短视频','视频','浏览器','商城','购票','小说','聊天','小工具','理财记帐']
sum_app = [[5045137.0],[4608092.0],[35723063.0],[23775808.0],[15367847.0],
            [10424808.0],[76975429.0],[7393185.0],[64636392.0],[50491990.0]]
#初始化主题的时候可以改变整体效果
bar = Bar(init_opts = opts.InitOpts(theme = ThemeType.LIGHT,#更改主题
                                    width = '700px',height = '480px'))
bar.add_xaxis(['App类别'])
for item in items:
    bar.add_yaxis(item,sum_app[items.index(item)])
bar.set_global_opts(title_opts = opts.TitleOpts(title = "Apps",
                                                subtitle = '下载数量'))
bar.render_notebook()

Out[9]:

 

2.绘制各类App下载量的饼图

In [10]:

from pyecharts.charts import Pie
items = ['相机','短视频','视频','浏览器','商城','购票','小说','聊天','小工具','理财记帐']
sum_app = [[5045137.0],[4608092.0],[35723063.0],[23775808.0],[15367847.0],
            [10424808.0],[76975429.0],[7393185.0],[64636392.0],[50491990.0]]
pie = Pie(init_opts = opts.InitOpts(theme = ThemeType.INFOGRAPHIC,
                                    width = '500px',height = '380px'))
pie.add("",data_pair = 
        [(item,sum_app[items.index(item)]) for item in items],
        radius = ["30%","75%"],center = ["50%","50%"],rosetype = "radius",
        label_opts = opts.LabelOpts(is_show = False))
pie.set_global_opts(title_opts = opts.TitleOpts(title ="App下载\n数据占比"))
pie.set_series_opts(label_opts = opts.LabelOpts(formatter = "{b} : {c}"))
pie.render_notebook()

Out[10]:

 

  1. 绘制各类App下载量的涟漪特效散点图

In [11]:

from pyecharts.charts import EffectScatter
items = ['相机','短视频','视频','浏览器','商城','购票','小说','聊天','小工具','理财记帐']
sum_app = [[5045137.0],[4608092.0],[35723063.0],[23775808.0],[15367847.0],
            [10424808.0],[76975429.0],[7393185.0],[64636392.0],[50491990.0]]
c = EffectScatter(init_opts = opts.InitOpts(width = '800px',height = '400px'))
c.add_xaxis(items)
c.add_yaxis("",sum_app,color = False)
c.set_global_opts(title_opts = opts.TitleOpts(title ="App下载数量"))
c.render_notebook()

Out[11]:

 

写在最后:

此处的数据是来源于我自己的数据,想要的宝子可以私信我要奥,也希望我写的博文能帮到你们。文章当中的图片由于一些原因无法展示,希望各位宝子可以见谅哈!各位宝子也可以自行验证

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小鱼༒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值