这篇文章主要介绍了基于python的图表生成系统,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。
目录
一、水球图
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')
)