使用pyecharts绘制图表

一、 使用pyecharts绘制图表
1、 概述
Pyecharts是由百度提供的js组件库,使用python语言可以调用pyecharts组件生成各种图表。

2、 绘制的常用图表类型
条形图、饼图、折线图、散点图、雷达图和词云。

3、 安装pyecharts
(1) pip install pyecharts
(2) 在pycharm中安装
Settings-project interceptor–±—输入pyecharts,点击install安装

二、 使用pyecharts的绘图步骤
1、 创建图表对象
bar=Bar() #创建条形图对象

2、 使用add方法添加集合数据,并设置属性
bar.add(集合参数,…)

3、 显示配置信息
bar.show_config()#只适用于pyecharts0.5.11版本,1.9之后已经弃用

4、 生成html文件
bar.render(“文件名称.html”)

三、 常用图形的绘制
1、 使用pyecharts 0.5.11版本绘制柱状图

绘制的示例:
from pyecharts import Bar

#创建条形图对象
bar=Bar(“销售数量”,“服装销售数量”)
names=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]
nums=[20,50,30,40,20]

bar.add(“服装销售”,names,nums)
bar.show_config()
bar.render(“bar.html”)

在这里插入图片描述

使用pyecharts1.9版本绘制柱状图

from pyecharts.charts import Bar
from pyecharts import options as opts #引入配置类

x=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]

y1=[114,55,27,101,125,27,105]
y2=[57,134,101,22,69,90,129]

#创建柱状图对象
bar=Bar()

bar.add_xaxis(x)
bar.add_yaxis(“淘宝”,y1)
bar.add_yaxis(“京东”,y2)

#设置配置信息(标题)
bar.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
bar.set_series_opts(label_opts=opts.LabelOpts(position=“Top”))

#生成文件
bar.render(“bar1.html”)
在这里插入图片描述

轴交换
from pyecharts.charts import Bar
from pyecharts import options as opts #引入配置类

x=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]

y1=[114,55,27,101,125,27,105]
y2=[57,134,101,22,69,90,129]

#创建柱状图对象
bar=Bar()

bar.add_xaxis(x) #添加x轴坐标的信息
bar.add_yaxis(“淘宝”,y1) #添加y轴的信息
bar.add_yaxis(“京东”,y2) #添加y轴的信息

#设置配置信息(标题)
bar.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
bar.set_series_opts(label_opts=opts.LabelOpts(position=“Top”))

bar.reversal_axis()#x和y轴坐标进行交换
#生成文件
bar.render(“bar1.html”)

在这里插入图片描述

2、 绘制饼图Pie(pyecharts1.9版本)

from pyecharts.charts import Pie
from pyecharts import options as opts #引入配置类

names=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]
nums=[114,55,27,101,125,27,105]

#创建饼图对象
pie=Pie()

pie.add(“服装销售”,[list(dic) for dic in zip(names,nums)])

#设置配置信息(标题)
pie.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
#pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{pie}"))

pie.render(“pie.html”)
在这里插入图片描述

绘制环形图
from pyecharts.charts import Pie
from pyecharts import options as opts #引入配置类

names=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]
nums=[114,55,27,101,125,27,105]

#创建饼图对象
pie=Pie()

pie.add(“服装销售”,[list(dic) for dic in zip(names,nums)],radius=[“75%”,“40%”])

#设置配置信息(标题)
pie.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
#pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{pie}"))

pie.render(“pie1.html”)

玫瑰图
from pyecharts.charts import Pie
from pyecharts import options as opts #引入配置类
在这里插入图片描述

names=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]
nums=[114,55,27,101,125,27,105]

#创建饼图对象
pie=Pie()

pie.add(“服装销售”,[list(dic) for dic in zip(names,nums)],radius=[“40%”,“75%”],rosetype=“area”)

#设置配置信息(标题)
pie.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),
toolbox_opts=opts.ToolboxOpts(is_show=True),
legend_opts=opts.LegendOpts(orient=‘vertical’,pos_top=‘5%’,pos_left=“2%”)#显示图例
)#让标题呈现
#pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{pie}"))

pie.render(“pie2.html”)

在这里插入图片描述

3.散点图Scatter
from pyecharts.charts import Scatter
from pyecharts import options as opts #引入配置类

x=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]

y1=[114,55,27,101,125,27,105]
y2=[57,134,101,22,69,90,129]

#创建散点图对象
sc=Scatter()

sc.add_xaxis(x) #添加x轴坐标的信息
sc.add_yaxis(“淘宝”,y1) #添加y轴的信息
sc.add_yaxis(“京东”,y2) #添加y轴的信息

#设置配置信息(标题)
sc.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
sc.set_series_opts(label_opts=opts.LabelOpts(position=“Top”))

#生成文件
sc.render(“scatter.html”)

在这里插入图片描述

4.使用grid表格呈现多图
from pyecharts.charts import Bar,Line,Grid
from pyecharts import options as opts #引入配置类

#绘制柱状图#########################################
x=[‘大衣’,‘羽绒服’,‘帽子’,‘棉靴’,‘手套’]

y1=[114,55,27,101,125,27,105]
y2=[57,134,101,22,69,90,129]

#创建柱状图对象
bar=Bar()

bar.add_xaxis(x) #添加x轴坐标的信息
bar.add_yaxis(“淘宝”,y1) #添加y轴的信息
bar.add_yaxis(“京东”,y2) #添加y轴的信息

#设置配置信息(标题)
bar.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
bar.set_series_opts(label_opts=opts.LabelOpts(position=“Top”))
#######################################################################

###############绘制折线图##############################################
#创建柱状图对象
line=Line()

line.add_xaxis(x) #添加x轴坐标的信息
line.add_yaxis(“淘宝”,y1) #添加y轴的信息
line.add_yaxis(“京东”,y2) #添加y轴的信息

#设置配置信息(标题)
line.set_global_opts(title_opts=opts.TitleOpts(title=‘商品销售’),toolbox_opts=opts.ToolboxOpts(is_show=True))#让标题呈现
line.set_series_opts(label_opts=opts.LabelOpts(position=“Top”))
#######################################################################

#####创建gride对象,添加柱状图和折线图到grid中
grid=Grid()

grid.add(bar,grid_opts=opts.GridOpts(pos_bottom=“60%”))
grid.add(line,grid_opts=opts.GridOpts(pos_top=“60%”))
grid.render(“grid.html”)

在这里插入图片描述

6.构建雷达图

from pyecharts.charts import Radar
from pyecharts import options as opts #引入配置类

#由于雷达图传入的数据得为多维数据,所以这里需要做一下处理
#2个系列的5个维度的数据
value1 = [[0.79,0.90,0.46,0.57,-0.50]]
value2 = [[0.11,0.34,0.31,-0.11,0.21]]

#用于调整雷达各维度的范围大小
c_schema= [{“name”: “O”, “max”: 1, “min”: -1},
{“name”: “C”, “max”: 1, “min”: -1},
{“name”: “E”, “max”: 1, “min”: -1},
{“name”: “A”, “max”: 1, “min”: -1},
{“name”: “N”, “max”: 1, “min”: -1}]
#画图
radar = Radar()
radar.add_schema(schema=c_schema)
radar.add(“Alen”, value1)
radar.add(“Bella”, value2)
radar.render(“rader.html”)

在这里插入图片描述

合并折线图和柱状图
from pyecharts import Bar
from pyecharts import Line
from pyecharts import Style
from pyecharts import Page
from pyecharts import Overlap
def create_charts():
page = Page()
x = [’{}年’.format(i)for i in range(1,12)]
y = [3,5,3,5,3,4,5,3,5,2,4]
y1=[1,2,3,4,5,6,7,8,9,10,11]
style = Style(height=600,width=1400)
bar = Bar(‘柱形图’,**style.init_style,background_color=[‘pink’])
line = Line()
line.add(’’,x,y,effect_scale=8)
line.add(’’,x,y1,effect_scale=10)
bar.add(‘商家A’,x,y,mark_line=[‘average’],mark_point=[‘min’,‘max’])
bar.add(‘商家B’,x,y1,mark_line=[‘average’],mark_point=[‘min’,‘max’],is_legend_show=True)
overlap = Overlap(height=450,width=1200)
overlap.add(bar)
overlap.add(line)
page.add(overlap)
return page
create_charts().render(‘1.html’)
在这里插入图片描述

词云图
from pyecharts import WordCloud #适用于pyecharts 0.5.11版本
name =[‘Sam S Club’, ‘Macys’, ‘Amy Schumer’, ‘Jurassic World’, ‘Charter Communications’, ‘Chick Fil A’, ‘Planet Fitness’, ‘Pitch Perfect’, ‘Express’, ‘Home’, ‘Johnny Depp’, ‘Lena Dunham’, ‘Lewis Hamilton’, ‘KXAN’, ‘Mary Ellen Mark’, ‘Farrah Abraham’, ‘Rita Ora’, ‘Serena Williams’, ‘NCAA baseball tournament’, ‘Point Break’]
value =[10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265]
wordcloud =WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[20, 100])
wordcloud.show_config()
wordcloud.render(“word.html”)
在这里插入图片描述

折线图 pyecharts0.5.11
from pyecharts import Line
attr =[“衬衫”, “羊毛衫”, “雪纺衫”, “裤子”, “高跟鞋”, “袜子”]
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]
line =Line(“折线图示例”)
line.add(“商家A”, attr, v1, mark_point=[“average”])
line.add(“商家B”, attr, v2, is_smooth=True, mark_line=[“max”, “average”])
line.show_config()
line.render(“lin.html”)
在这里插入图片描述

折线面积图pyecharts0.5.11

from pyecharts import Line
attr =[“衬衫”, “羊毛衫”, “雪纺衫”, “裤子”, “高跟鞋”, “袜子”]
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]

line =Line(“折线图-面积图示例”)
line.add(“商家A”, attr, v1, is_fill=True, line_opacity=0.2, area_opacity=0.4, symbol=None)
line.add(“商家B”, attr, v2, is_fill=True, area_color=’#000’, area_opacity=0.3, is_smooth=True)
line.show_config()
line.render()

在这里插入图片描述

3D柱状图
from pyecharts import Bar3D

bar3d = Bar3D(“3D 柱状图示例”, width=1200, height=600)
x_axis = [
“12a”, “1a”, “2a”, “3a”, “4a”, “5a”, “6a”, “7a”, “8a”, “9a”, “10a”, “11a”,
“12p”, “1p”, “2p”, “3p”, “4p”, “5p”, “6p”, “7p”, “8p”, “9p”, “10p”, “11p”
]
y_axis = [
“Saturday”, “Friday”, “Thursday”, “Wednesday”, “Tuesday”, “Monday”, “Sunday”
]
data = [
[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0],
[0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2],
[0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6],
[0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5],
[1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0],
[1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2],
[1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7],
[1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2],
[2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0],
[2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2],
[2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5],
[2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4],
[3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0],
[3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4],
[3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5],
[3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1],
[4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1],
[4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4],
[4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1],
[4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0],
[5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0],
[5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1],
[5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6],
[5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0],
[6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0],
[6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0],
[6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0],
[6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]
]

range_color = [’#313695’, ‘#4575b4’, ‘#74add1’, ‘#abd9e9’, ‘#e0f3f8’, ‘#ffffbf’,
‘#fee090’, ‘#fdae61’, ‘#f46d43’, ‘#d73027’, ‘#a50026’]
bar3d.add(
“”,
x_axis,
y_axis,
[[d[1], d[0], d[2]] for d in data],
is_visualmap=True,
visual_range=[0, 20],
visual_range_color=range_color,
grid3d_width=200,
grid3d_depth=80,
is_grid3d_rotate=True
)
bar3d.render(‘bar3d.html’)

在这里插入图片描述

  • 10
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值