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')
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值