python绘制非常漂亮的图表,python制作简单图形

这篇文章主要介绍了基于python的图表生成系统,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

目录

一、水球图

添加标题 

二、仪表盘图

三、漏斗图 

四、热力图 

五、日历图

六、词云图 

七、条形图

设置标题

 设置风格

工具箱

​编辑

八、折线图

九、散点图

十、涟漪散点图

十一、象形条形图

十二、K线图

十三、箱线图

十四、饼图

十五、玫瑰图

十六、雷达图

十七、极坐标散点图

十八、热力地图(地图热力图)

十九、全球各国的热力地图

二十、省份的热力图

二十一、全国的某些城市的热力图

二十二、区县的地图

二十三、地理坐标热力图

二十四、热力散点图

二十五、地理连线图

二十六、太阳图

二十七、树形图 

二十八、网络图的绘制 

二十九、辐射状的网络图

三十、3D条形图

三十一、3D条形图-堆叠

三十二、3D折线图

三十三、3D散点图

三十四、双轴坐标图

三十五、顺序多图

三十六、时间线图 


一、水球图

from pyecharts.charts import Liquid
lqd=Liquid()
#add传入数据
lqd.add('完成率',[0.6])
#绘制
lqd.render()

在它返回的路径下找到这个文件 

 用浏览器打开,(这其实是一张动图)

 

 或者指定存储的目录和文件名

from pyecharts.charts import Liquid
lqd=Liquid()
#add传入数据
lqd.add('完成率',[0.6])
#绘制
lqd.render('/Users/Desktop/waterball.html')

 简化版本的代码

from pyecharts.charts import Liquid
#先创建对象,然后add传入数据,最后绘制
Liquid().add('完成率',[0.6]).render('/Users/Desktop/waterball.html')

 或者使用括号括起来,然后换行

from pyecharts.charts import Liquid
#先创建对象,然后add传入数据,最后绘制
(Liquid().add('完成率',[0.6])
         .render('/Users/Desktop/waterball.html'))

绘图完成之后直接打开 

from pyecharts.charts import Liquid
#先创建对象,然后add传入数据,最后绘制
f=(
    Liquid()
   .add('完成率',[0.6])
   .render()
)
#python内置的打开浏览器的模块
import webbrowser as wb
wb.open(f)

 或者是

from pyecharts.charts import Liquid
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
#先创建对象,然后add传入数据,最后绘制
Liquid().add('完成率',[0.6]).render_notebook()

添加标题 

from pyecharts.charts import Liquid
#设置选项的库
import pyecharts.options as opts
#先创建对象,然后add传入数据,最后绘制
f=(
    Liquid()
    .add('完成率',[0.6])
    .set_global_opts(
        #设置标题
        title_opts=opts.TitleOpts(
            title='实习任务完成率',
            pos_left='center'
        )
    )
    .render()
)
#python内置的打开浏览器的模块
import webbrowser as wb
wb.open(f)

 

二、仪表盘图

from pyecharts.charts import Gauge
import pyecharts.options as opts
import webbrowser as wb
f=(
    Gauge()
    .add('',
        [('完成率\n\n',76.5)],
         min_=0,
         max_=100
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2022年公司销售指标完成率',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/Gauge.html')
)

from pyecharts.charts import Gauge
import pyecharts.options as opts
import webbrowser as wb
f=(
    Gauge()
    .add('',
         #设置仪表盘指针的位置
        [('完成率\n\n',76.5)],
         #设置仪表盘的上限和下限
         min_=0,
         max_=100,
         axisline_opts=opts.AxisLineOpts(
             linestyle_opts=opts.LineStyleOpts(
                 #设置不同刻度区间的颜色
                 color=[
                     (0.25,'red'),
                     (0.50,'yellow'),
                     (0.75,'green'),
                     (1.00,'blue')
                 ],
                 width=35
             )
         )
    )
    #设置标题
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2022年公司销售指标完成率',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/Gauge.html')
)

一是,用’red’、’yellow’、’blue’等相应颜色的英文单词字符串来表示;

二是,用’#ff0000’、’#ffff00’、’#0000ff’等’#’开头并加上6位十六进制描述RGB颜色值的字符串来表示;

三是,用’rgb(255,0,0)’、’rgb(255,255,0)’、’rgb(0,0,255)’等rgb()函数的形式表示。

三、漏斗图 

from pyecharts.charts import Funnel
import pyecharts.options as opts
import webbrowser as wb
from pyecharts.faker import Faker
#随机选择一个主题
labels=Faker.choose()
#随机选择一个数字
values=Faker.values()
#对标签和数字进行配对
data=list(zip(labels, values))
data
f=(
    Funnel()
    .add('', data)
    .set_global_opts(title_opts=opts.TitleOpts(title='销量分析'))
    .render('/Users/Desktop/faker.html')
)

默认是将标签放在外面的,我们这样修改一下,将标签放在里面 

from pyecharts.charts import Funnel
import pyecharts.options as opts
import webbrowser as wb
from pyecharts.faker import Faker
#随机选择一个主题
labels=Faker.choose()
#随机选择一个数字
values=Faker.values()
#对标签和数字进行配对
data=list(zip(labels, values))
data
f=(
    Funnel()
    .add('',
         data,
         label_opts=opts.LabelOpts(
             position='inside'
         )
    )
    .set_global_opts(title_opts=opts.TitleOpts(title='销量分析'))
    .render('/Users/Desktop/faker.html')
)

 

 如何将漏斗倒过来(添加sort_的参数)

from pyecharts.charts import Funnel
import pyecharts.options as opts
import webbrowser as wb
from pyecharts.faker import Faker
#随机选择一个主题
labels=Faker.choose()
#随机选择一个数字
values=Faker.values()
#对标签和数字进行配对
data=list(zip(labels, values))
data
f=(
    Funnel()
    .add('',
         data,
         sort_='ascending',
         label_opts=opts.LabelOpts(
             position='inside'
         )
    )
    .set_global_opts(title_opts=opts.TitleOpts(title='销量分析'))
    .render('/Users/Desktop/faker.html')
)

 

四、热力图 

from pyecharts.charts import HeatMap
import pyecharts.options as opts

from pyecharts.faker import Faker
import random

data=[(i,j,random.randint(0,150))
      #模拟一周7天,24小时的降雨量
      for i in range(24)
      for j in range(7)]
f=(
    HeatMap()
    .add_xaxis(Faker.clock)
    .add_yaxis('',Faker.week,data)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='一周降雨量分布情况',
            pos_left='center'
        ),
        visualmap_opts=opts.VisualMapOpts(
            #将图例改成水平的
            orient='horizontal',
            max_=150,
            #将我们的热力图条变成选择
            is_piecewise=True,
            #f放在正中间的位置
            pos_left='center'

        )
    )

    .render('/Users/Desktop/hotmap.html')
)

连续的选择调节 

from pyecharts.charts import HeatMap
import pyecharts.options as opts

from pyecharts.faker import Faker
import random

data=[(i,j,random.randint(0,150))
      #模拟一周7天,24小时的降雨量
      for i in range(24)
      for j in range(7)]
f=(
    HeatMap()
    .add_xaxis(Faker.clock)
    .add_yaxis('',Faker.week,data)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='一周降雨量分布情况',
            pos_left='center'
        ),
        visualmap_opts=opts.VisualMapOpts(
            #将图例改成水平的
            orient='horizontal',
            max_=150,
            # is_piecewise=True,
            #f放在正中间的位置
            pos_left='center'

        )
    )

    .render('/Users/Desktop/hotmap.html')
)

 

五、日历图

import datetime as dt
import random
from pyecharts.charts import Calendar
import pyecharts.options as opts

begin=dt.date(2021,1,1)
end=dt.date(2021,12,31)
data=[
    (begin+dt.timedelta(days=i),random.randint(0,30000))
        for i in range((end-begin).days+1)
]

f=(
    Calendar()
    .add(
        #添加数据
        '',
        data,
        #指定年份是2021年
        calendar_opts=opts.CalendarOpts(range_='2021')
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #添加主标题
            title='2021年每日微信步数情况'
        ),
        #设置图例
        visualmap_opts=opts.VisualMapOpts(
            #设置图例的最小值和最大值
            min_=0,
            max_=30000,
            #水平放置图例
            orient='horizontal',
            #分区间显示
            is_piecewise=True,
            #距离左边向右偏离225个像素
            pos_left='225px',
            #将图例放在顶部
            pos_top='top'
        )

    )
    .render('/Users/Desktop/datemap.html')
)

 标签使用中文进行显示

import datetime as dt
import random
from pyecharts.charts import Calendar
import pyecharts.options as opts

begin=dt.date(2021,1,1)
end=dt.date(2021,12,31)
data=[
    (begin+dt.timedelta(days=i),random.randint(0,30000))
        for i in range((end-begin).days+1)
]

f=(
    Calendar()
    .add(
        #添加数据
        '',
        data,
        #指定年份是2021年
        calendar_opts=opts.CalendarOpts(
            range_='2021',
            #图上的名字用中文来显示
            daylabel_opts=opts.CalendarDayLabelOpts(name_map='cn'),
            monthlabel_opts=opts.CalendarMonthLabelOpts(name_map='cn'),
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #添加主标题
            title='2021年每日微信步数情况'
        ),
        #设置图例
        visualmap_opts=opts.VisualMapOpts(
            #设置图例的最小值和最大值
            min_=0,
            max_=30000,
            #水平放置图例
            orient='horizontal',
            #分区间显示
            is_piecewise=True,
            #距离左边向右偏离225个像素
            pos_left='225px',
            #将图例放在顶部
            pos_top='top'
        )

    )
    .render('/Users/Desktop/datemap.html')
)

将年份2021隐藏掉 

import datetime as dt
import random
from pyecharts.charts import Calendar
import pyecharts.options as opts

begin=dt.date(2021,1,1)
end=dt.date(2021,12,31)
data=[
    (begin+dt.timedelta(days=i),random.randint(0,30000))
        for i in range((end-begin).days+1)
]

f=(
    Calendar()
    .add(
        #添加数据
        '',
        data,
        #指定年份是2021年
        calendar_opts=opts.CalendarOpts(
            range_='2021',
            #图上的名字用中文来显示
            daylabel_opts=opts.CalendarDayLabelOpts(name_map='cn'),
            monthlabel_opts=opts.CalendarMonthLabelOpts(name_map='cn'),
            yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #添加主标题
            title='2021年每日微信步数情况'
        ),
        #设置图例
        visualmap_opts=opts.VisualMapOpts(
            #设置图例的最小值和最大值
            min_=0,
            max_=30000,
            #水平放置图例
            orient='horizontal',
            #分区间显示
            is_piecewise=True,
            #距离左边向右偏离225个像素
            pos_left='225px',
            #将图例放在顶部
            pos_top='top'
        )

    )
    .render('/Users/Desktop/datemap.html')
)

 

调整显示的日期范围

import datetime as dt
import random
from pyecharts.charts import Calendar
import pyecharts.options as opts

begin=dt.date(2021,1,1)
end=dt.date(2021,12,31)
data=[
    (begin+dt.timedelta(days=i),random.randint(0,30000))
        for i in range((end-begin).days+1)
]

f=(
    Calendar()
    .add(
        #添加数据
        '',
        data,
        #指定年份是2021年
        calendar_opts=opts.CalendarOpts(
            #显示日历的区间
            range_=['2021-01','2021-12-31'],
            #图上的名字用中文来显示
            daylabel_opts=opts.CalendarDayLabelOpts(name_map='cn'),
            monthlabel_opts=opts.CalendarMonthLabelOpts(name_map='cn'),
            yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #添加主标题
            title='2021年每日微信步数情况'
        ),
        #设置图例
        visualmap_opts=opts.VisualMapOpts(
            #设置图例的最小值和最大值
            min_=0,
            max_=30000,
            #水平放置图例
            orient='horizontal',
            #分区间显示
            is_piecewise=True,
            #距离左边向右偏离225个像素
            pos_left='225px',
            #将图例放在顶部
            pos_top='top'
        )

    )
    .render('/Users/Desktop/datemap.html')
)

 

或者调成别的时间范围 ,这里我们调节成了到2021年8月1号的

import datetime as dt
import random
from pyecharts.charts import Calendar
import pyecharts.options as opts

begin=dt.date(2021,1,1)
end=dt.date(2021,12,31)
data=[
    (begin+dt.timedelta(days=i),random.randint(0,30000))
        for i in range((end-begin).days+1)
]

f=(
    Calendar()
    .add(
        #添加数据
        '',
        data,
        #指定年份是2021年
        calendar_opts=opts.CalendarOpts(
            #显示日历的区间
            range_=['2021-01','2021-8-1'],
            #图上的名字用中文来显示
            daylabel_opts=opts.CalendarDayLabelOpts(name_map='cn'),
            monthlabel_opts=opts.CalendarMonthLabelOpts(name_map='cn'),
            yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #添加主标题
            title='2021年每日微信步数情况'
        ),
        #设置图例
        visualmap_opts=opts.VisualMapOpts(
            #设置图例的最小值和最大值
            min_=0,
            max_=30000,
            #水平放置图例
            orient='horizontal',
            #分区间显示
            is_piecewise=True,
            #距离左边向右偏离225个像素
            pos_left='225px',
            #将图例放在顶部
            pos_top='top'
        )

    )
    .render('/Users/Desktop/datemap.html')
)

六、词云图 

from pyecharts.faker import Faker
from pyecharts.charts import WordCloud
import pyecharts.options as opts

data=[]
for i in range(5):
    #将Faker随机选择的主题和其值取出来
    #并且打包成一对一对的数据映射
    data+=list(zip(Faker.choose(),Faker.values()))

f={
    WordCloud()
    #添加数据
    .add('',data,shape='star')
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #设置主标题
            title='词云图',
            #设置副标题
            subtitle='(五角星形)',
        )
    )
    .render('/Users/Desktop/wordcloud.html')
}

词云图轮廓,有 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star' 可选python工程师证书。 

七、条形图

from pyecharts.charts import Bar

f=(
    Bar()
    .add_xaxis(['催逝员','薛总司令','王大队长','老冯'])
    #直角坐标系的系列名称是只有y轴才有
    .add_yaxis('语文',[75,90,81,55])
    .add_yaxis('数学',[66,78,95,50])
    .render('/Users/Desktop/bar.html')
)

 

设置标题

import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Bar
df=pd.read_csv('/Users/Data(2)/orders.csv')
#因为生成的是series,所以需要转换成list
x=df['category'].tolist()
y1=df['x'].tolist()
y2=df['y'].tolist()
f=(
    Bar()
    .add_xaxis(x)
    .add_yaxis('销售额',y1)
    .add_yaxis('利润额',y2)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #设置主标题
            title='销售利润分析',
            #设置副标题
            subtitle='(2021年)'
        )
    )
    .render('/Users/Desktop/bar.html')
)

 设置风格

import pandas as pd
from pyecharts.charts import Bar
df=pd.read_csv('/Users/Data(2)/orders.csv')
#因为生成的是series,所以需要转换成list
x=df['category'].tolist()
y1=df['x'].tolist()
y2=df['y'].tolist()
f=(
    #shine
    #设置风格是light的配色
    Bar(init_opts=opts.InitOpts(theme='light'))
    .add_xaxis(x)
    .add_yaxis('销售额',y1)
    .add_yaxis('利润额',y2)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            #设置主标题
            title='销售利润分析',
            #设置副标题
            subtitle='(2021年)'
        )
    )
    .render('/Users/Desktop/bar.html')
)

工具箱

import pandas as pd
from pyecharts.charts import Bar
df=pd.read_csv('/Users/Data(2)/orders.csv')
#因为生成的是series,所以需要转换成list
x=df['category'].tolist()
y1=df['x'].tolist()
y2=df['y'].tolist()
f=(
    #shine
    Bar(init_opts=opts.InitOpts(theme='light'))
    .add_xaxis(x)
    .add_yaxis('销售额',y1)
    .add_yaxis('利润额',y2)
    .set_global_opts(

#添加工具箱

        toolbox_opts=opts.ToolboxOpts(),
        title_opts=opts.TitleOpts(
            #设置主标题
            title='销售利润分析',
            #设置副标题
            subtitle='(2021年)',
        ),


    )
    .render('/Users/Desktop/bar.html')
)

八、折线图

import pandas as pd
from pyecharts.charts import Line
import pyecharts.options as opts

df=pd.read_csv('/Users/Data(2)/sales.csv',header=None)
df
df['Year']=df[1].apply(lambda x: int(x[:4]))
#分组统计不同的店铺的2019年的经营状况
data=df[df['Year']==2019][[2,16,19]].groupby(2).sum()

x=list(data.index)

#销售额
#round保留两位小数
y1=list(data[16].apply(lambda x: round(x,2)))
#利润额
y2=list(data[19].apply(lambda x: round(x,2)))

f = (
    #设置主题为shine
    Line(init_opts=opts.InitOpts(theme='shine'))
    #传入x轴
    .add_xaxis(x)
    #传入y轴的数据,一共绘制两条折线
    #设置折线平滑
    .add_yaxis('销售额', y1, is_smooth=True)
    .add_yaxis('利润额', y2, is_smooth=True)
    #添加主标题和副标题
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='门店销售额利润额的比较分析',
            subtitle='2019年企业经营状况分析'
        ),
            toolbox_opts=opts.ToolboxOpts()
        )
     .render('/Users/Desktop/line.html')
)
import pandas as pd
from pyecharts.charts import Line
import pyecharts.options as opts

df=pd.read_csv('/Users/Documents/orders.csv')
x=df['category'].tolist()
y1=df['x'].tolist()
y2=df['y'].tolist()
f = (
    #设置主题为shine
    Line(init_opts=opts.InitOpts(theme='chalk'))
    #传入x轴
    .add_xaxis(x)
    #传入y轴的数据,一共绘制两条折线
    #设置折线平滑
    .add_yaxis('销售额', y1, is_smooth=True)
    .add_yaxis('利润额', y2, is_smooth=True)
    #添加主标题和副标题
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='门店销售额利润额的比较分析',
            subtitle='2019年企业经营状况分析'
        ),
        toolbox_opts=opts.ToolboxOpts()
    )
    .render('/Users/Desktop/test/test4.html')
)

九、散点图

#绘制散点图
from pyecharts.charts import Scatter
import pyecharts.options as opts
import random
x=[random.randint(0,50) for _ in range(50)]
y1=[random.randint(0,50) for _ in range(50)]
y2=[random.randint(0,50) for _ in range(50)]

f={
    Scatter()
    .add_xaxis(x)
    #第一个参数是系列名称
    #最后一个参数有没有逗号没有关系
    .add_yaxis(
        '第一组数据',
        y1,
    )
    .add_yaxis(
        '第二组数据',
        y2,
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="两组数据对比"
        )
    )
    .render('/Users/Desktop/scatter.html')
}

如何不显示标签和修改点的形状和修改主题风格

#绘制散点图
from pyecharts.charts import Scatter
import pyecharts.options as opts
import random
x=[random.randint(0,50) for _ in range(50)]
y1=[random.randint(0,50) for _ in range(50)]
y2=[random.randint(0,50) for _ in range(50)]

f={
    #设置为深夜模式
    Scatter(init_opts=opts.InitOpts(theme='dark'))
    .add_xaxis(x)
    #第一个参数是系列名称
    #最后一个参数有没有逗号没有关系
    .add_yaxis(
        '第一组数据',
        y1,
        #默认的标记就是circle
        symbol='circle',
        label_opts=opts.LabelOpts(
            #不显示标签
            is_show=False
        )
    )
    .add_yaxis(
        '第二组数据',
        y2,
        symbol='square',
        label_opts=opts.LabelOpts(
            #不显示标签
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="两组数据对比",
        )

    )
    .render('/Users/Desktop/scatter.html')
}

十、涟漪散点图

#绘制涟漪散点图
from pyecharts.charts import EffectScatter
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

#手机的相关标签
x=Faker.phones
#随机产生两组数据
y1=Faker.values()
y2=Faker.values()
f=(
    EffectScatter()
    .add_xaxis(x)
    #第一个参数是系列名称
    #后面那个参数是销售量
    .add_yaxis(
        '当月',
        y1,

    )
    .add_yaxis(
        '上月',
        y2,
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='销售情况对比分析',
            subtitle='(2022年11月)'
        )
    )
    .render('/Users/Desktop/scatter.html')
)

设置主题和形状 

#绘制涟漪散点图
from pyecharts.charts import EffectScatter
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

#手机的相关标签
x=Faker.phones
#随机产生两组数据
y1=Faker.values()
y2=Faker.values()
f=(
    #黑板主题风格
    EffectScatter(init_opts=opts.InitOpts(theme='chalk'))
    .add_xaxis(x)
    #第一个参数是系列名称
    #后面那个参数是销售量
    .add_yaxis(
        '当月',
        y1,
        #设置形状
        symbol='triangle'
    )
    .add_yaxis(
        '上月',
        y2,
        #设置形状
        symbol='rect'
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='销售情况对比分析',
            subtitle='(2022年11月)'
        )
    )
    .render('/Users/Desktop/scatter.html')
)

 

 或者是圆角矩形和菱形

#绘制涟漪散点图
from pyecharts.charts import EffectScatter
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

#手机的相关标签
x=Faker.phones
#随机产生两组数据
y1=Faker.values()
y2=Faker.values()
f=(
    #黑板主题风格
    EffectScatter(init_opts=opts.InitOpts(theme='chalk'))
    .add_xaxis(x)
    #第一个参数是系列名称
    #后面那个参数是销售量
    .add_yaxis(
        '当月',
        y1,
        #设置形状
        symbol='diamond'
    )
    .add_yaxis(
        '上月',
        y2,
        #设置形状
        #圆角矩形
        symbol='roundRect'
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='销售情况对比分析',
            subtitle='(2022年11月)'
        )
    )
    .render('/Users/Desktop/scatter.html')
)

 

十一、象形条形图

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities)
    .add_yaxis('',
        values
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

更改形状为圆角矩形

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities)
    .add_yaxis('',
        values,
        symbol='roundRect'
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

图形重复来达到高度 

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities)
    .add_yaxis('',
        values,
        symbol='roundRect',
        #图形重复
        symbol_repeat=True
            
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

指定叠加的大小 

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities)
    .add_yaxis('',
        values,
        symbol='roundRect',
        #图形重复
        symbol_repeat=True,
        symbol_size=20
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

 

可以切割 

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities)
    .add_yaxis('',
        values,
        symbol='roundRect',
        #图形重复
        symbol_repeat=True,
        symbol_size=20,
        is_symbol_clip=True
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

 

将图标横过来 

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    #需要将数据和标签也逆置过来
    .add_xaxis(cities[::-1])
    .add_yaxis('',
        values[::-1],
        symbol='roundRect',
        #图形重复
        symbol_repeat=True,
        symbol_size=20,
        is_symbol_clip=True
    )
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

 

 不显示数据

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities[::-1])
    .add_yaxis('',
        values[::-1],
        symbol='roundRect',
        #图形重复
        symbol_repeat=True,
        symbol_size=20,
        is_symbol_clip=True,
        label_opts=opts.LabelOpts(is_show=False)
    )
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'

        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

 

将做坐标轴隐藏掉 

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities[::-1])
    .add_yaxis('',
        values[::-1],
        symbol='roundRect',
        #图形重复
        symbol_repeat=True,
        symbol_size=20,
        is_symbol_clip=True,
        label_opts=opts.LabelOpts(is_show=False)
    )
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'
        ),
        #x轴不显示标签
        xaxis_opts=opts.AxisOpts(
            is_show=False
        ),
        #y轴不显示标签
        yaxis_opts=opts.AxisOpts(
            #刻度不显示
            axistick_opts=opts.AxisTickOpts(
                is_show=False
            ),
            #将轴线隐藏掉
            axisline_opts=opts.AxisOpts(
                is_show=False
            )
        )
    )
    .render('/Users/Desktop/pictorialbar.html')
)

 

将图标替换成小人图标 

#绘制象牙条形图
from pyecharts.charts import PictorialBar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
cities=['北京','上海','广州','深圳','杭州']
values=[2173,2420,1404,1191,1220]
f=(
    PictorialBar()
    .add_xaxis(cities[::-1])
    .add_yaxis('',
        values[::-1],
#image://是协议
#后面写图片的路径
#路径里没有中文,不然可能识别出不来
        symbol='image:///Users/Desktop/person.bmp',
        #图形重复
        symbol_repeat=True,
        symbol_size=20,
        is_symbol_clip=True,
        label_opts=opts.LabelOpts(is_show=False)
    )
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='2021年底北上广深人口数量',
            subtitle='(单位:万人)'
        ),
        #x轴不显示标签
        xaxis_opts=opts.AxisOpts(
            is_show=False
        ),
        #y轴不显示标签
        yaxis_opts=opts.AxisOpts(
            #刻度不显示
            axistick_opts=opts.AxisTickOpts(
                is_show=False
            ),
            axisline_opts=opts.AxisOpts(
                is_show=False
            )
        )
    )
    .render('/Users/Desktop/person.html')
)

 

十二、K线图

#绘制象牙条形图
from pyecharts.charts import Kline
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
import pandas as pd
df=pd.read_csv('/Users/Documents/stocks.csv',header=None)
df['Date']=pd.to_datetime(df[0])
data=df[(df['Date']>=pd.Timestamp('2022-10-01'))&(df['Date']<=pd.Timestamp('2022-11-16'))]
x=list(data[0])[::-1]
y=[]

#逆序取出来
for i in range(len(x)-1,-1,-1):
    y.append([
        data.iloc[i,1],
        data.iloc[i,4],
        data.iloc[i,3],
        data.iloc[i,2]
        ])
f=(
    Kline(init_opts=opts.InitOpts(theme='chalk'))
    .add_xaxis(x)
    .add_yaxis(
        #系列名称
        '股票价格',
        y
    )
    #设置全局配置
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="股票价格走势-日K线"
        )
    )
    .render('/Users/Desktop/K_line.html')
)

十三、箱线图

from pyecharts.charts import Boxplot
import pyecharts.options as opts
import pandas as pd
import webbrowser as wb
df=pd.read_csv('/Users/Documents/score.csv',encoding='gbk')
x=list(df['课程'].unique())
y=[]
for c in x:
    y.append(df[df['课程']==c]['成绩'])
f=(
    Boxplot(init_opts=opts.InitOpts(theme='chalk'))
    .add_xaxis(x)
    #系列名称为空,然后数据为y,让preprare_data为我们处理分位数
    .add_yaxis('',Boxplot.prepare_data(y))
    #转置
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='各科成绩分布情况',
            pos_left='center'
        )

    )
    .render('/Users/Desktop/boxplot.html')
)

十四、饼图

from pyecharts.faker import Faker
from pyecharts.charts import Pie
import pyecharts.options as opts
import pandas as pd
x=Faker.fruits
y=Faker.values()
f=(
    Pie(init_opts=opts.InitOpts(theme='chalk'))
    .add(
        '水果',
        #只能传入列表
        list(zip(x,y)),
    )
    .set_colors(['red','yellow','orange','green','cyan','blue','purple'])
    .set_series_opts(
        #设置标签
        label_opts=opts.LabelOpts(
            formatter='{b}:{c}箱,占{d}%'
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='水果销量分析',
            subtitle='(2022年10月)'
        )
    )
    .render('/Users/Desktop/pie.html')
)

十五、玫瑰图

from pyecharts.faker import Faker
from pyecharts.charts import Pie
import pyecharts.options as opts
import pandas as pd
x=Faker.clothes
y=Faker.values()
y.sort()
f=(
    Pie(init_opts=opts.InitOpts(theme='chalk'))
    .add(
        '服饰',
        #只能传入列表
        list(zip(x,y)),
        #按照区域面积来实现
        rosetype='area'
    )
    .set_colors(['red','yellow','orange','green','cyan','blue','purple'])
    .set_series_opts(
        #设置标签
        label_opts=opts.LabelOpts(
            formatter='{b}:{c},占{d}%'
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='主要服饰销量分析',
            subtitle='(2022年10月)'
        )
    )
    .render('/Users/Desktop/flower.html')
)

 将标签设置为竖直的

from pyecharts.faker import Faker
from pyecharts.charts import Pie
import pyecharts.options as opts
import pandas as pd
x=Faker.clothes
y=Faker.values()
y.sort()
f=(
    Pie(init_opts=opts.InitOpts(theme='chalk'))
    .add(
        '服饰',
        #只能传入列表
        list(zip(x,y)),
        #按照区域面积来实现
        rosetype='area',
        #在水平50%的位置,也就是居中,然后向下约为55%的位置
        center=('50%','55%'),
    )
    .set_colors(['red','yellow','orange','green','cyan','blue','purple'])
    .set_series_opts(
        #设置标签
        label_opts=opts.LabelOpts(
            formatter='{b}:{c},占{d}%'
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='主要服饰销量分析',
            subtitle='(2022年10月)',
            pos_left='center',
            pos_top='5%'
        ),
        legend_opts=opts.LegendOpts(
            #将水平的标签改成竖直的,默认是将标签放在中间的
            orient='vertical',
            #从顶部往下移动10%
            pos_top='10%',
            pos_right='right',
        )
    )
    .render('/Users/Desktop/flower.html')
)

 ​​​​​​​

将花的花心置空 

from pyecharts.faker import Faker
from pyecharts.charts import Pie
import pyecharts.options as opts
import pandas as pd
x=Faker.clothes
y=Faker.values()
y.sort()
f=(
    Pie(init_opts=opts.InitOpts(theme='chalk'))
    .add(
        '服饰',
        #只能传入列表
        list(zip(x,y)),
        #需要挖掉的半径
        radius=['15%','50%'],
        #按照区域面积来实现
        rosetype='area',
        #在水平50%的位置,也就是居中,然后向下约为55%的位置
        center=('50%','55%'),
    )
    .set_colors(['red','yellow','orange','green','cyan','blue','purple'])
    .set_series_opts(
        #设置标签
        label_opts=opts.LabelOpts(
            formatter='{b}:{c},占{d}%'
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='主要服饰销量分析',
            subtitle='(2022年10月)',
            pos_left='center',
            pos_top='5%'
        ),
        legend_opts=opts.LegendOpts(
            #将水平的标签改成竖直的,默认是将标签放在中间的
            orient='vertical',
            #从顶部往下移动10%
            pos_top='10%',
            pos_right='right',
        )
    )
    .render('/Users/Desktop/flower.html')
)

十六、雷达图

from pyecharts.faker import Faker
from pyecharts.charts import Radar
import pyecharts.options as opts
import pandas as pd

df=pd.read_csv('/Users/Documents/sales.csv',header=None,usecols=[11,16,19]).groupby(11).sum()
rii=[]

#设置雷达图的轴线和标签
for i in df.index:
    rii.append(opts.RadarIndicatorItem(i,max_=4600000))
#销售额
data1=list(df[16])
#利润额
data2=list(df[19])
f=(
    Radar()
    #绘制的模式(框架)
    #设置位置,左右居中,从上往下55%的位置
    .add_schema(rii,center=['50%','55%'])
    .add(
        '销售额',
        [data1],
        color='blue',
        symbol='circle',
        areastyle_opts=opts.AreaStyleOpts(
            #设置雷达图的不透明度
            opacity=0.1
        )
    )
    .add(
        '利润额',
        [data2],
        color='red',
        symbol='square',
        areastyle_opts=opts.AreaStyleOpts(
        #设置雷达图的不透明度
        opacity=0.1
)
    )
    #将标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='区域销售情况分析',
            pos_left='center'
        ),
        #将图例往下移30个像素
        legend_opts=opts.LegendOpts(pos_top=30)
    )
    .render('/Users/Desktop/radar.html')
)

 将图例放在右侧

from pyecharts.faker import Faker
from pyecharts.charts import Radar
import pyecharts.options as opts
import pandas as pd

df=pd.read_csv('/Users/sales.csv',header=None,usecols=[11,16,19]).groupby(11).sum()
rii=[]

#设置雷达图的轴线和标签
for i in df.index:
    rii.append(opts.RadarIndicatorItem(i,max_=4600000))
#销售额
data1=list(df[16])
#利润额
data2=list(df[19])
f=(
    Radar()
    #绘制的模式(框架)
    #设置位置,左右居中,从上往下55%的位置
    .add_schema(rii,center=['50%','55%'])
    .add(
        '销售额',
        [data1],
        color='blue',
        symbol='circle',
        areastyle_opts=opts.AreaStyleOpts(
            #设置雷达图的不透明度
            opacity=0.1
        )
    )
    .add(
        '利润额',
        [data2],
        color='red',
        symbol='square',
        areastyle_opts=opts.AreaStyleOpts(
        #设置雷达图的不透明度
        opacity=0.1
)
    )
    #将标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='区域销售情况分析',
            pos_left='center'
        ),
        #将图例往下移30个像素
        legend_opts=opts.LegendOpts(
            pos_top='5%',
            pos_right='right',
            orient='vertical',

        ),

    )
    .render('/Users/Desktop/radar.html')
)

将图例放在底部 

from pyecharts.faker import Faker
from pyecharts.charts import Radar
import pyecharts.options as opts
import pandas as pd

df=pd.read_csv('/Users/sales.csv',header=None,usecols=[11,16,19]).groupby(11).sum()
rii=[]

#设置雷达图的轴线和标签
for i in df.index:
    rii.append(opts.RadarIndicatorItem(i,max_=4600000))
#销售额
data1=list(df[16])
#利润额
data2=list(df[19])
f=(
    Radar()
    #绘制的模式(框架)
    #设置位置,左右居中,从上往下55%的位置
    .add_schema(rii,center=['50%','50%'])
    .add(
        '销售额',
        [data1],
        color='blue',
        symbol='circle',
        areastyle_opts=opts.AreaStyleOpts(
            #设置雷达图的不透明度
            opacity=0.1
        )
    )
    .add(
        '利润额',
        [data2],
        color='red',
        symbol='square',
        areastyle_opts=opts.AreaStyleOpts(
        #设置雷达图的不透明度
        opacity=0.1
)
    )
    #将标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='区域销售情况分析',
            pos_left='center'
        ),
        #将图例往下移30个像素
        legend_opts=opts.LegendOpts(
            pos_bottom='bottom',
            pos_right='center',
            orient='horizontal',

        ),

    )
    .render('/Users/Desktop/radar.html')
)

十七、极坐标散点图

import random

from pyecharts.charts import Polar
import pyecharts.options as opts
import webbrowser as wb
#极坐标上的数据和角度
data=[(i,random.randint(1,100)) for i in range(50)]
f=(
    Polar()
    .add('',
        data,
         #普通的散点
        type_='scatter'
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='极坐标散点图'
        )
    )
    .render('/Users/Desktop/polar.html')
)

添加涟漪特效 

import random

from pyecharts.charts import Polar
import pyecharts.options as opts
import webbrowser as wb
#极坐标上的数据和角度
data=[(i,random.randint(1,100)) for i in range(50)]
f=(
    Polar()
    .add('',
        data,
         #普通的散点
        type_='effectScatter',
         #添加特效
        effect_opts=opts.EffectOpts(
            #设置比例尺
            scale=9
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='极坐标散点图'
        )
    )
    .render('/Users/Desktop/polar1.html')
)

 

 更改主题

import random

from pyecharts.charts import Polar
import pyecharts.options as opts
import webbrowser as wb
#极坐标上的数据和角度
data=[(i,random.randint(1,100)) for i in range(50)]
f=(
    Polar(init_opts=opts.InitOpts(theme='chalk'))
    .add('',
        data,
         #普通的散点
        type_='effectScatter',
         #添加特效
        effect_opts=opts.EffectOpts(
            #设置比例尺
            scale=9
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='极坐标散点图'
        )
    )
    .render('/Users/Desktop/polar1.html')
)

 

十八、热力地图(地图热力图)

#热力地图
from pyecharts.charts import Map
import pyecharts.options as opts
import webbrowser as wb
import random
data=dict(新疆=165,西藏=122.84,内蒙古=118.3,青海=72.12,四川=48.5,黑龙江=45.46,甘肃=45.4,云南=39.4)
f=(
    Map()
    #第一个参数是系列名称,我们这里没有,就空着
    #第二个参数是数据
    .add('',
         #将键和值取出来,生成一个对应的元组,然后转换成一个列表
         list(data.items()),
         'china'
    )
    #将标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='全国面积最大的8个省区'
        ),
        #添加可视化的颜色
        visualmap_opts=opts.VisualMapOpts(
            min_=39.4,
            max_=165
        )
    )
    .render('/Users/Desktop/map.html')
)

十九、全球各国的热力地图

from pyecharts.charts import Map
import pyecharts.options as opts
import webbrowser as wb
import random
countries=['United states','China','Japen','Germany','United kindom']
gdps=[22.94,16.86,5.1,4.23,3.11]
data=list(zip(countries,gdps))
f=(
    Map()
    .add('',data,'world')
    #在系列中将我们的标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="2021年全球GDP前五的国家",
            subtitle='(单位:万亿美元)'
        )
    )
    .render('/Users/Desktop/theworld.html')
)

给指定的国家添加颜色

from pyecharts.charts import Map
import pyecharts.options as opts
import webbrowser as wb
import random
countries=['United States','China','Japan','Germany','United Kingdom']
gdps=[22.94,16.86,5.1,4.23,3.11]
data=list(zip(countries,gdps))
f=(
    Map()
    .add('',data,'world')
    #在系列中将我们的标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="2021年全球GDP前五的国家",
            subtitle='(单位:万亿美元)'
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=3.11,
            max_=22.94
        )
    )
    .render('/Users/Desktop/theworld.html')
)

二十、省份的热力图

from pyecharts.charts import Map
import pyecharts.options as opts
data=[('杭州市',300),('宁波市',200),('温州市',100)]
f=(
    Map()
    .add('',data,'浙江')
    #在系列中将我们的标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="浙江省",
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=100,
            max_=300
        )
    )
    .render('/Users/Desktop/zhejiang.html')
)

二十一、全国的某些城市的热力图

from pyecharts.charts import Map
import pyecharts.options as opts
data=[('北京',1),('上海',2),('广州',3),('深圳',4),('杭州',5)]
f=(
    Map()
    .add('',data,'china-cities')
    #在系列中将我们的标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="全国各市",
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=1,
            max_=6
        )
    )
    .render('/Users/Desktop/cities.html')
)

二十二、区县的地图

from pyecharts.charts import Map
import pyecharts.options as opts
data=[('西湖区',1),('拱墅区',2),('余杭区',1),('桐庐县',4),('建德市',5)]
f=(
    Map()
    .add('',data,'杭州')
    #在系列中将我们的标签隐藏掉
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="杭州各区县市",
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=1,
            max_=6
        )
    )
    .render('/Users/Desktop/local.html')
)

二十三、地理坐标热力图

from pyecharts.charts import Geo
import pyecharts.options as opts
from pyecharts.faker import Faker
data=list(zip(Faker.provinces,Faker.values()))
f=(
    Geo()
    .add_schema('china')
    .add('',data)
    #设置系列的参数
    .set_series_opts(
        #热力图
        type='heatmap'
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='全国各市'
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=0,
            max_=100
        )
    )
    .render('/Users/Desktop/cities.html')
)

二十四、热力散点图

from pyecharts.charts import Geo
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[('北京',1),('上海',2),('广州',3),('深圳',4),('杭州',5),('阿克苏',6)]
f=(
    Geo()
    #地图为中国地图
    .add_schema('china')
    .add('',data)
    #设置系列的参数
    .set_series_opts(
        #热力图
        type='scatter',
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='全国各市'
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=0,
            max_=6
        )
    )
    .render('/Users/Desktop/cities2.html')
)

按照大小绘制散点

from pyecharts.charts import Geo
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[('北京',1),('上海',2),('广州',3),('深圳',4),('杭州',5),('阿克苏',6)]
f=(
    Geo()
    #地图为中国地图
    .add_schema('china')
    .add('',data)
    #设置系列的参数
    .set_series_opts(
        #热力图
        type='scatter',
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='全国各市'
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=0,
            max_=6,
            type_='size'
        )
    )
    .render('/Users/Desktop/cities2.html')
)

二十五、地理连线图

from pyecharts.charts import Geo
import pyecharts.options as opts
data=[('北京',10),('上海',20),('广州',30),('深圳',40),('杭州',50),('阿克苏',60)]
f=(
    Geo()
    #使用什么样的地图
    .add_schema('china')
    #添加数据
    #第一个参数为系列标题,空着就是没有
    .add('',
         data,
         type_='effectScatter',
    )
    .add(
        '杭州出发的航班',[('杭州','北京'),('杭州','广州'),('杭州','深圳'),('杭州','阿克苏')],
        #设置成连线的形式
        type_='lines',
        #设置线的弯曲程度
        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="几个城市"
        )
    )
    .render('/Users/Desktop/geo.html')
)

调整参数,添加特效

from pyecharts.charts import Geo
import pyecharts.options as opts
data=[('北京',10),('上海',20),('广州',30),('深圳',40),('杭州',50),('阿克苏',60)]
f=(
    Geo()
    #使用什么样的地图
    .add_schema('china')
    #添加数据
    #第一个参数为系列标题,空着就是没有
    .add('',
         data,
         type_='effectScatter',
    )
    .add(
        '杭州出发的航班',[('杭州','北京'),('杭州','广州'),('杭州','深圳'),('杭州','阿克苏')],
        #设置成连线的形式
        type_='lines',
        #设置线的弯曲程度
        linestyle_opts=opts.LineStyleOpts(
            curve=0.2
        ),
        effect_opts=opts.EffectOpts(
            symbol_size=9,
            color='blue'
        )
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
        title="几个城市"
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=10,
            max_=60
        )
    )
    .render('/Users/Desktop/geo.html')
)

​​​​​​​

二十六、太阳图

from pyecharts.charts import Sunburst
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[
    #下面是直接用faker中的数据
    opts.SunburstItem(
        name='水果',
        children=[
#将我们的Faker取出来的随机组合和我们的水果使用zip函数组成一个元组
            opts.SunburstItem(value,name) for(value,name)
                in zip(Faker.values(),Faker.fruits)
        ],
#将这一个项目的主题设置成红色
        itemstyle_opts=opts.ItemStyleOpts(
            color='red'
        )
    ),
    opts.SunburstItem(
        name='手机',
        children=[
            opts.SunburstItem(value,name) for(value,name)
            in zip(Faker.values(),Faker.phones)
        ],
        itemstyle_opts=opts.ItemStyleOpts(
            color='yellow'
        )
    ),
    opts.SunburstItem(
        name='服饰',
        children=[
            opts.SunburstItem(value,name) for(value,name)
            in zip(Faker.values(),Faker.clothes)
        ],
        itemstyle_opts=opts.ItemStyleOpts(
            color='blue'
        )
    ),
    #这是我们自己写的数据
    #如果我们自己写数据的话,我们需要将我们的数据一层一层套进去
    opts.SunburstItem(
        500,
        name='其他',
        children=[
            opts.SunburstItem(
                400,
                name='食品',
                children=[
                    opts.SunburstItem(
                        200,
                        '面包'
                    ),
                    opts.SunburstItem(
                        100,
                        '大米'
                    )
                ]
            ),
            opts.SunburstItem(
                30,
                '饮料',
            ),
            opts.SunburstItem(
                20,
                '白酒'
            )
        ]
    )
]

f=(
    Sunburst()
    #设置里面挖掉多少,
    .add('',data,radius=['20%','100%'])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='销售量品类层次分析',
            subtitle='(2022年11月)',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/sun.html')
)

二十七、树形图 

from pyecharts.charts import Tree
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[
    opts.TreeItem(
        name='商品',
        children=[
            opts.TreeItem(
                name='水果',
                children=[
                    opts.TreeItem(name) for name in Faker.fruits
                ]
            ),
            opts.TreeItem(
                name='手机',
                children=[
                    opts.TreeItem(name) for name in Faker.phones
                ]
            ),
            opts.TreeItem(
                name='服饰',
                children=[
                    opts.TreeItem(name) for name in Faker.clothes
                ]
            ),
            opts.TreeItem(
                name='其他',
                children=[
                    opts.TreeItem(
                        name='食品',
                        children=[
                            opts.TreeItem('面包'),
                            opts.TreeItem('大米')
                        ]
                    ),
                    opts.TreeItem('饮料'),
                    opts.TreeItem('白酒')
                ]
            )
        ]
    )
]

f=(
    Tree()
    .add('',data,)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='商品层次分类',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/tree.html')

)

 调整我们的树的方向

from pyecharts.charts import Tree
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[
    opts.TreeItem(
        name='商品',
        children=[
            opts.TreeItem(
                name='水果',
                children=[
                    opts.TreeItem(name) for name in Faker.fruits
                ]
            ),
            opts.TreeItem(
                name='手机',
                children=[
                    opts.TreeItem(name) for name in Faker.phones
                ]
            ),
            opts.TreeItem(
                name='服饰',
                children=[
                    opts.TreeItem(name) for name in Faker.clothes
                ]
            ),
            opts.TreeItem(
                name='其他',
                children=[
                    opts.TreeItem(
                        name='食品',
                        children=[
                            opts.TreeItem('面包'),
                            opts.TreeItem('大米')
                        ]
                    ),
                    opts.TreeItem('饮料'),
                    opts.TreeItem('白酒')
                ]
            )
        ]
    )
]

f=(
    Tree()
    #设置orient='BT'就可以让树从底部往上面生长
    .add('',data,orient='BT')
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='商品层次分类',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/tree.html')

)

 

从上往下长 

from pyecharts.charts import Tree
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[
    opts.TreeItem(
        name='商品',
        children=[
            opts.TreeItem(
                name='水果',
                children=[
                    opts.TreeItem(name) for name in Faker.fruits
                ]
            ),
            opts.TreeItem(
                name='手机',
                children=[
                    opts.TreeItem(name) for name in Faker.phones
                ]
            ),
            opts.TreeItem(
                name='服饰',
                children=[
                    opts.TreeItem(name) for name in Faker.clothes
                ]
            ),
            opts.TreeItem(
                name='其他',
                children=[
                    opts.TreeItem(
                        name='食品',
                        children=[
                            opts.TreeItem('面包'),
                            opts.TreeItem('大米')
                        ]
                    ),
                    opts.TreeItem('饮料'),
                    opts.TreeItem('白酒')
                ]
            )
        ]
    )
]

f=(
    Tree()
    #设置orient='BT'就可以让树从底部往上面生长
    .add('',data,orient='TB')
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='商品层次分类',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/tree.html')

)

 

从右往左 

from pyecharts.charts import Tree
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[
    opts.TreeItem(
        name='商品',
        children=[
            opts.TreeItem(
                name='水果',
                children=[
                    opts.TreeItem(name) for name in Faker.fruits
                ]
            ),
            opts.TreeItem(
                name='手机',
                children=[
                    opts.TreeItem(name) for name in Faker.phones
                ]
            ),
            opts.TreeItem(
                name='服饰',
                children=[
                    opts.TreeItem(name) for name in Faker.clothes
                ]
            ),
            opts.TreeItem(
                name='其他',
                children=[
                    opts.TreeItem(
                        name='食品',
                        children=[
                            opts.TreeItem('面包'),
                            opts.TreeItem('大米')
                        ]
                    ),
                    opts.TreeItem('饮料'),
                    opts.TreeItem('白酒')
                ]
            )
        ]
    )
]

f=(
    Tree()
    #设置orient='BT'就可以让树从底部往上面生长
    .add('',data,orient='RL')
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='商品层次分类',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/tree.html')

)

​​​​​​​

辐射状的树 

from pyecharts.charts import Tree
import pyecharts.options as opts
from pyecharts.faker import Faker
data=[
    opts.TreeItem(
        name='商品',
        children=[
            opts.TreeItem(
                name='水果',
                children=[
                    opts.TreeItem(name) for name in Faker.fruits
                ]
            ),
            opts.TreeItem(
                name='手机',
                children=[
                    opts.TreeItem(name) for name in Faker.phones
                ]
            ),
            opts.TreeItem(
                name='服饰',
                children=[
                    opts.TreeItem(name) for name in Faker.clothes
                ]
            ),
            opts.TreeItem(
                name='其他',
                children=[
                    opts.TreeItem(
                        name='食品',
                        children=[
                            opts.TreeItem('面包'),
                            opts.TreeItem('大米')
                        ]
                    ),
                    opts.TreeItem('饮料'),
                    opts.TreeItem('白酒')
                ]
            )
        ]
    )
]

f=(
    Tree()
    #设置orient='BT'就可以让树从底部往上面生长
    .add('',data,layout='radial')
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='商品层次分类',
            pos_left='center'
        )
    )
    .render('/Users/Desktop/tree.html')

)

 ​​​​​​​​​​​​​​

二十八、网络图的绘制 

#网络图
from pyecharts.charts import Graph
import pyecharts.options as opts
from pyecharts.faker import Faker
nodes=[
    opts.GraphNode(name='中国',symbol_size=60),
    opts.GraphNode(name='美国',symbol_size=50),
    opts.GraphNode(name='俄罗斯',symbol_size=40),
    opts.GraphNode(name='英国',symbol_size=30),
    opts.GraphNode(name='德国',symbol_size=20),
    opts.GraphNode(name='日本',symbol_size=10),
]
links=[]
for (i,nodeSource) in enumerate(nodes):
    for(j,nodetarget) in enumerate(nodes):
        if i<j:
            #两两之间建立链接
            links.append(opts.GraphLink(source=nodeSource.get("name"),
                           target=nodetarget.get("name")))
f=(
    Graph()
    #分别为类别名称结点,链接和排斥力
    .add('h',nodes,links,repulsion=3000)
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='网络图-基本'
        )
    )
    .render('/Users/Desktop/net.html')
)

二十九、辐射状的网络图

from pyecharts.charts import Graph
import pyecharts.options as opts
nodes=[
    opts.GraphNode(name='中国',symbol_size=60),
    opts.GraphNode(name='美国',symbol_size=50),
    opts.GraphNode(name='俄罗斯',symbol_size=40),
    opts.GraphNode(name='英国',symbol_size=30),
    opts.GraphNode(name='德国',symbol_size=20),
    opts.GraphNode(name='日本',symbol_size=10),
]

links=[]
for (i,nodeSource) in enumerate(nodes):
    for(j,nodetarget) in enumerate(nodes):
        if i<j:
            #两两之间建立链接
            links.append(opts.GraphLink(source=nodeSource.get("name"),
                                        target=nodetarget.get("name")))
f=(
    Graph()
    .add('',
        nodes,
        links,
        #辐射状的网络
        layout='circular',

    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='辐射状的网络图'
        )
    )
    .render('/Users/Desktop/net1.html')
)

from pyecharts.charts import Graph
import pyecharts.options as opts
nodes=[
    opts.GraphNode(name='中国',symbol_size=60),
    opts.GraphNode(name='美国',symbol_size=50),
    opts.GraphNode(name='俄罗斯',symbol_size=40),
    opts.GraphNode(name='英国',symbol_size=30),
    opts.GraphNode(name='德国',symbol_size=20),
    opts.GraphNode(name='日本',symbol_size=10),
]

links=[]
for (i,nodeSource) in enumerate(nodes):
    for(j,nodetarget) in enumerate(nodes):
        if i<j:
            #两两之间建立链接
            links.append(opts.GraphLink(source=nodeSource.get("name"),
                                        target=nodetarget.get("name")))
f=(
    Graph()
    .add('',
        nodes,
        links,
        #辐射状的网络
        layout='circular',
        is_rotate_label=True,
         linestyle_opts=opts.LineStyleOpts(
             #设置线的颜色和发出的结点的颜色相同
             #color=nodeSource,
             color='blue',
             curve=0.2
         )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='辐射状的网络图'
        )
    )
    .render('/Users/Desktop/net1.html')
)

 

三十、3D条形图

#3D条形图
from pyecharts.charts import Bar3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

#需要是一个三维的元组
#x,y分别是一天当中的每一个小时和一周七天
#randint的取值范围是左闭右也闭的区间
data=[(x,y,random.randint(0,10))
        for x in range(24)
            for y in range(7)]

f=(
    Bar3D()
    .add('',
        data,
         #X轴的配置
        xaxis3d_opts=opts.Axis3DOpts(
            #指定相关的刻度
            Faker.clock,
            #这是一个分类
            type_='category',
        ),
         yaxis3d_opts=opts.Axis3DOpts(
             Faker.week,
             type_='category'
         ),
         zaxis3d_opts=opts.Axis3DOpts(
             type_='value',
         )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='3D条形图-基本',
        )
    )
    .render('/Users/Desktop/3Dplot.html')
)

根据柱子的高度设置不同的颜色

#3D条形图
from pyecharts.charts import Bar3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

#需要是一个三维的元组
#x,y分别是一天当中的每一个小时和一周七天
#randint的取值范围是左闭右也闭的区间
data=[(x,y,random.randint(0,10))
        for x in range(24)
            for y in range(7)]

f=(
    Bar3D()
    .add('',
        data,
         #X轴的配置
        xaxis3d_opts=opts.Axis3DOpts(
            #指定相关的刻度
            Faker.clock,
            #这是一个分类
            type_='category',
        ),
         yaxis3d_opts=opts.Axis3DOpts(
             Faker.week,
             type_='category'
         ),
         zaxis3d_opts=opts.Axis3DOpts(
             type_='value',
         )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='3D条形图-基本',
        ),
        visualmap_opts=opts.VisualMapOpts(
            max_=10,
        )
    )
    .render('/Users/Desktop/3Dplot.html')
)

 

三十一、3D条形图-堆叠

from pyecharts.charts import Bar3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import random

def getData():
    data = []
    for x in range(10):
        for y in range(10):
            z=random.randint(0,5)
            data.append([x,y,z])
    return data

x = y =list(range(10))
b=Bar3D()
for  _ in range(3):
    b.add('',
          getData(),
          #分别指定三个坐标轴的刻度和类型
          xaxis3d_opts=opts.Axis3DOpts(x,type_='value'),
          yaxis3d_opts=opts.Axis3DOpts(y,type_='value'),
          zaxis3d_opts=opts.Axis3DOpts(type_='value'),
          )
#设置是否是堆叠的
b.set_series_opts(stack='stack')
b.set_global_opts(
    title_opts=opts.TitleOpts(
        title="3D条形图-堆叠",
        pos_left='center',
    )
)
b.render('/Users/Desktop/3Dplo2t.html')

 添加光照模型,让我们的3D堆叠图的每一个面接受光照

from pyecharts.charts import Bar3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import random

def getData():
    data = []
    for x in range(10):
        for y in range(10):
            z=random.randint(0,5)
            data.append([x,y,z])
    return data

x = y =list(range(10))
b=Bar3D()
for  _ in range(3):
    b.add('',
          getData(),
          #分别指定三个坐标轴的刻度和类型
          xaxis3d_opts=opts.Axis3DOpts(x,type_='value'),
          yaxis3d_opts=opts.Axis3DOpts(y,type_='value'),
          zaxis3d_opts=opts.Axis3DOpts(type_='value'),
          #设置成为光照模型
          shading='lambert',
          )
#设置是否是堆叠的
b.set_series_opts(stack='stack')
b.set_global_opts(
    title_opts=opts.TitleOpts(
        title="3D条形图-堆叠",
        pos_left='center',
    )
)
b.render('/Users/Desktop/3Dplo2t.html')

三十二、3D折线图

from pyecharts.charts import Line3D
from pyecharts import options as opts
from pyecharts.faker import Faker
import math
data=[]
for t in range(25000):
    t=t/1000
    x=(1+0.25*math.cos(75*t))*math.cos(t)
    y=(1+0.25*math.cos(75*t))*math.sin(t)
    z=(t+0.2*math.sin(75+t))
    data.append([x,y,z])

f=(
    Line3D()
    .add(
        #系列名称是空的
        '',
        data,
        xaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        yaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        zaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        )
    )
    .set_global_opts(
         title_opts=opts.TitleOpts(
             title='3D折线图-旋转的弹簧',
         )
    )
    .render('/Users/Desktop/3Dplot3.html')
)

设置相关的视觉映射 

from pyecharts.charts import Line3D
from pyecharts import options as opts
from pyecharts.faker import Faker
import math
data=[]
for t in range(25000):
    t=t/1000
    x=(1+0.25*math.cos(75*t))*math.cos(t)
    y=(1+0.25*math.cos(75*t))*math.sin(t)
    z=(t+0.2*math.sin(75+t))
    data.append([x,y,z])

f=(
    Line3D()
    .add(
        #系列名称是空的
        '',
        data,
        xaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        yaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        zaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        )
    )
    .set_global_opts(
         title_opts=opts.TitleOpts(
             title='3D折线图-旋转的弹簧',
         ),
        visualmap_opts=opts.VisualMapOpts(
            max_=30,
        )
    )
    .render('/Users/Desktop/3Dplot3.html')
)

 

使用Faker中的配色方案

from pyecharts.charts import Line3D
from pyecharts import options as opts
from pyecharts.faker import Faker
import math
data=[]
for t in range(25000):
    t=t/1000
    x=(1+0.25*math.cos(75*t))*math.cos(t)
    y=(1+0.25*math.cos(75*t))*math.sin(t)
    z=(t+0.2*math.sin(75+t))
    data.append([x,y,z])

f=(
    Line3D()
    .add(
        #系列名称是空的
        '',
        data,
        xaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        yaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        zaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        )
    )
    .set_global_opts(
         title_opts=opts.TitleOpts(
             title='3D折线图-旋转的弹簧',
         ),
        visualmap_opts=opts.VisualMapOpts(
            max_=30,
            range_color=Faker.visual_color,
        )
    )
    .render('/Users/Desktop/3Dplot3.html')
)

 

让这个弹簧真正地旋转起来

from pyecharts.charts import Line3D
from pyecharts import options as opts
from pyecharts.faker import Faker
import math
data=[]
for t in range(25000):
    t=t/1000
    x=(1+0.25*math.cos(75*t))*math.cos(t)
    y=(1+0.25*math.cos(75*t))*math.sin(t)
    z=(t+0.2*math.sin(75+t))
    data.append([x,y,z])

f=(
    Line3D()
    .add(
        #系列名称是空的
        '',
        data,
        xaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        yaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        zaxis3d_opts=opts.Axis3DOpts(
            type_='value',
        ),
        grid3d_opts=opts.Grid3DOpts(
            width=100,
            depth=100,
            is_rotate=True,
            rotate_speed=150,
        )
    )
    .set_global_opts(
         title_opts=opts.TitleOpts(
             title='3D折线图-旋转的弹簧',
         ),
        visualmap_opts=opts.VisualMapOpts(
            max_=30,
            range_color=Faker.visual_color,
        )
    )
    .render('/Users/Desktop/3Dplot3.html')
)

 

三十三、3D散点图

from pyecharts.charts import Scatter3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
data=[(x,y,random.randint(0,10))for x in range(24) for y in range(7)]
f=(
    Scatter3D()
    .add('',
         data,
         xaxis3d_opts=opts.Axis3DOpts(
             Faker.clock,
             type_='category'
         ),
         yaxis3d_opts=opts.Axis3DOpts(
             Faker.week,
             type_='category'
         ),
         zaxis3d_opts=opts.Axis3DOpts(
             type_='value'
         ),
         )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='3D散点图',
            pos_left='center'

        )
    ).render('/Users/Desktop/net1.html')
)

 添加视觉效果

from pyecharts.charts import Scatter3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

data=[(x,y,random.randint(0,10))for x in range(24) for y in range(7)]
f=(
    Scatter3D()
    .add('',
         data,
         xaxis3d_opts=opts.Axis3DOpts(
             Faker.clock,
             type_='category'
         ),
         yaxis3d_opts=opts.Axis3DOpts(
             Faker.week,
             type_='category'
         ),
         zaxis3d_opts=opts.Axis3DOpts(
             type_='value'
         ),
         )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='3D散点图',
            pos_left='center'
        ),
        visualmap_opts=opts.VisualMapOpts(
            max_=10,
        )
    ).render('/Users/Desktop/net1.html')
)

 

根据大小显示 

from pyecharts.charts import Scatter3D
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random

data=[(x,y,random.randint(0,10))for x in range(24) for y in range(7)]
f=(
    Scatter3D()
    .add('',
         data,
         xaxis3d_opts=opts.Axis3DOpts(
             Faker.clock,
             type_='category'
         ),
         yaxis3d_opts=opts.Axis3DOpts(
             Faker.week,
             type_='category'
         ),
         zaxis3d_opts=opts.Axis3DOpts(
             type_='value'
         ),
         )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='3D散点图',
            pos_left='center'
        ),
        visualmap_opts=opts.VisualMapOpts(
            max_=10,
            type_='size'
        )
    ).render('/Users/Desktop/net1.html')
)

 

三十四、双轴坐标图

from pyecharts.charts import Line,Bar
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowser as wb
import random
import pandas as pd

df=pd.read_csv(r'/Users/stocks.csv',header=None)
df['Date']=pd.to_datetime(df[0])
df[6]=df[6]/10000
data=df[(df['Date']>=pd.Timestamp('2022-12-01'))
        & (df['Date']<=pd.Timestamp('2022-12-15'))]
x=list(data[0])[::-1]
y1=list(data[5])[::-1]
y2=list(data[6])[::-1]
l=(
    Line(init_opts=opts.InitOpts(theme='light'))
    .add_xaxis(x)
    .add_yaxis('股票价格',y1)
    #扩展坐标轴
    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(
                #设置标签的格式
                formatter='{value}万元'
            )
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='股票价格与交易额分析'
        ),
        xaxis_opts=opts.AxisOpts(
            #旋转的角度
            axislabel_opts=opts.LabelOpts(
                rotate=30,
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(
                formatter='{value}元'
            ),
            min_=29000,
            max_=30000
        )
    )

)

b = (
    Bar()
    .add_xaxis(x)
    .add_yaxis('交易额', y2, yaxis_index=1)
)

l.overlap(b)
l.render('/Users/Desktop/double.html')

三十五、顺序多图

from pyecharts.charts import Bar, Line, Pie, Map, Page
from pyecharts.faker import Faker
import pyecharts.options as opts
import webbrowser as wb
x=Faker.provinces
y=Faker.values()
data=list(zip(x,y))
b = (
    Bar(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add_xaxis(x)
    .add_yaxis('', y)
)
l = (
    Line(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add_xaxis(x)
    .add_yaxis('', y)
)
p = (
    Pie(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add('', data)
)
m = (
    Map(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add('', data, maptype='china')
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(
            min_=min(y),
            max_=max(y)
        )
    )
)
f = (
    Page(layout=Page.DraggablePageLayout) # Page.SimplePageLayout
    .add(b, l, p, m)
    .render('/Users/Desktop/page.html')
)

from pyecharts.charts import Bar, Line, Pie, Map, Page
from pyecharts.faker import Faker
import pyecharts.options as opts
import webbrowser as wb
x=Faker.provinces
y=Faker.values()
data=list(zip(x,y))
b = (
    Bar(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add_xaxis(x)
    .add_yaxis('', y)
)
l = (
    Line(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add_xaxis(x)
    .add_yaxis('', y)
)
p = (
    Pie(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add('', data)
)
m = (
    Map(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add('', data, maptype='china')
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(
            min_=min(y),
            max_=max(y)
        )
    )
)
f = (
    Page(layout=Page.SimplePageLayout) # Page.SimplePageLayout
    .add(b, l, p, m)
    .render('/Users/Desktop/page2.html')
)

 可拖动每一张子图的版本

from pyecharts.charts import Bar, Line, Pie, Map, Page
from pyecharts.faker import Faker
import pyecharts.options as opts
import webbrowser as wb
x=Faker.provinces
y=Faker.values()
data=list(zip(x,y))
b = (
    Bar(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add_xaxis(x)
    .add_yaxis('', y)
)
l = (
    Line(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add_xaxis(x)
    .add_yaxis('', y)
)
p = (
    Pie(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add('', data)
)
m = (
    Map(init_opts=opts.InitOpts(width='500px', height='400px'))
    .add('', data, maptype='china')
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(
            min_=min(y),
            max_=max(y)
        )
    )
)
f = (
    Page(layout=Page.DraggablePageLayout) # Page.SimplePageLayout
    .add(b, l, p, m)
    .render('/Users/Desktop/page3.html')
)

三十六、时间线图 

from pyecharts.charts import Bar,Timeline
from pyecharts.faker import Faker
import pyecharts.options as opts
import webbrowser as wb
x = Faker.provinces
y0 = Faker.values()
y1 = Faker.values()
tl = Timeline()
tl.add_schema(play_interval=200)
for i in range(1972, 2022):
    y = [round(a*(2021-i)/49+b*(i-1972)/49,1)
         for (a, b) in zip(y0, y1)]
    z = sorted(zip(x, y), key=lambda a: a[1])
    (xi, yi) = zip(*z)
    bar = (
        Bar()
        .add_xaxis(xi)
        .add_yaxis('',
                   yi,
                   color='blue',
                   label_opts=opts.LabelOpts(
                       position='right'
                   )
                   )
        #转置坐标轴,让顶部是大的,底部是小的。
        .reversal_axis()
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title=f'{i}年',
                pos_left='center'
            )
        )
    )
    tl.add(bar, f'{i}')
tl.render('/Users/Desktop/develop.html')

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值