pyecharts的使用
1.绘制柱状图
#导入包
from pyecharts.charts import Bar
from pyecharts import options
# 1.创建图表对象:Bar()
bar = Bar()
# 2.添加数据
# 1)添加x轴上的数据:bar.add_xaxis([])
bar.add_xaxis(["一季度", "二季度", "三季度", "四季度"])
# 添加y轴上的数据:与x轴的个数和顺序对应一致bar.add_yaxis("名称1",[])
bar.add_yaxis(
"价格", [1000, 3450, 600, 2089],
# 设置价格柱子的颜色
color="red",
# 柱子的宽度
# bar_width=40,
# 柱子的最大宽度最小宽度设置
bar_min_width=40,
bar_max_width=40
)
bar.add_yaxis(
"销量", [200, 100, 300, 300],
# 设置销量柱子的颜色
color="green",
# 柱子的最大宽度最小宽度设置
bar_min_width=40,
bar_max_width=40
)
bar.add_yaxis("利润", [4000, 5000, 4500, 3000])
# 3.柱状图相关的配置
# 1)全局配置
bar.set_global_opts(
# 设置标题:options.TitleOpts()
# is_show: bool = True是否显示
# title_link: Optional[str] = None跳转链接
# title_target: Optional[str] = "blank",在新的页面打开
# subtitle: Optional[str] = None,副标题
# pos_left: Optional[str],pos_right: Optional[str],pos_top: Optional[str],pos_bottom: Optional[str] = None设置标题的位置
# text_align: str = "auto",标题文字对齐方式
title_opts=options.TitleOpts(
title="全年xxxx手机销售信息",
subtitle='销售额和销量信息',
pos_right=380,
text_align="Center"
),
# 设置图例
# is_show: bool = True,是否显示
# item_width 设置图例大小
legend_opts=options.LegendOpts(
is_show=True,
pos_left=30,
item_width=30,
item_height=20,
),
# 设置工具箱
toolbox_opts=options.ToolboxOpts(
is_show=True,
),
# 设置区域缩放
# range_start缩放范围
datazoom_opts=options.DataZoomOpts(
is_show=True,
),
# x轴的名字
xaxis_opts=options.AxisOpts(
name="时间"
),
# y轴的名字
yaxis_opts=options.AxisOpts(
name="销售额(万元)/销量(个)"
)
)
# 2)系列配置
bar.set_series_opts(
# 设置标签
label_opts=options.LabelOpts(
is_show=True, # 是否显示
position="top", # 文字的位置top,left,right
rotate=0 # 文字旋转角度
),
# 设置标记最大值和最小值
markpoint_opts=options.MarkPointOpts(
data=[options.MarkPointItem(name="最大值", type_='max')]
)
)
# 4.渲染图表(制图)
bar.render("files/01柱状图.html")
展示成果
2.绘制折线图
#导入包
from pyecharts.charts import Line
from pyecharts import options
# 1.创建折现图对象
line = Line()
# 2.添加数据
line.add_xaxis(["一季度", "二季度", "三季度", "四季度"])
line.add_yaxis("服装销售额", [189, 350, 290, 500],is_smooth=True )#is_smooth=True设置折线平滑
line.add_yaxis("手机销售额", [100, 170, 120, 201])
# 3.折线图图表设置
# 1)全局配置
line.set_global_opts(
title_opts=options.TitleOpts(
title="xxxx商场各大商品的销售情况",
pos_left=350
),
legend_opts=options.LegendOpts(
is_show=True,
pos_left=30,
item_width=30,
item_height=20,
),
# x轴的名字
xaxis_opts=options.AxisOpts(
name="季度"
),
# y轴的名字
yaxis_opts=options.AxisOpts(
name="销售额(万元)"
)
)
# 2)系列配置
line.set_series_opts(
label_opts = options.LabelOpts(
is_show=True
),
markline_opts = options.MarkLineOpts(
data=[options.MarkLineItem(type_="average",name="平均销售额")]
)
)
# 4.渲染图表(制图)
line.render("files/02折现图.html")
展示成果
3.绘制饼图
from pyecharts.charts import Pie
from pyecharts import options
# 1.创建饼图对象
pie = Pie()
# 2.添加数据
pie.add(
"手机销量", [('Apple', 900), ('Huawei', 1300), ('Xiaomi', 500), ('Oppo', 320), ('Vivo', 230), ('Meizu', 190)],
radius=(20, 100),
# radius=('30%', '100%'), # 分别设置圆的内圆半径和外圆半径
rosetype='radius' # 让外环半径的值由比列来决定,不规则形状
)
# 3.设置图表的配置
# 1)全局
pie.set_global_opts(
legend_opts=options.LegendOpts(
is_show=False, # 隐藏图例
),
title_opts=options.TitleOpts(
title="xxx商城6月手机的销售情况",
pos_left="350",
)
)
pie.set_series_opts(
label_opts=options.LabelOpts(
formatter='{b}: {d}%' # 标记占比{b}数据名称,{d}%百分比比值
)
)
# 4.渲染图表
pie.render("files/03饼图.html")
展示成果
4.绘制地图
中国地图
from pyecharts.charts import Map
from pyecharts import options
# 1.创建地图对象
map1 = Map()
# 2.添加数据
map1.add(
"中国各个省份房价平均值",
[("四川省", 9230), ("重庆市", 20808), ("⼭东省", 15889), ("广东省", 71995), ('湖南省', 6738), ("湖北省", 5800), ('福建省', 49096),
('北京市', 67756), ("江苏省", 34000), ("吉林省", 7553), ('浙江省', 37773), ('云南省', 5460), ('青海省', 6450), ("甘肃省", 8844),
('山东省', 10450)],
zoom=1.5, # 设置默认的倍数
min_scale_limit=0.8, # 设置最小值缩小倍数
max_scale_limit=1.5, # 设置最大值放大倍数
)
# 3.添加配置
# 1)全局配置
map1.set_global_opts(
visualmap_opts=options.VisualMapOpts(
is_show=True,
min_=5000,
max_=80000,
# 设置颜色分段
is_piecewise=True,
# 设置每一段的数值范围
pieces=[{"min": 3000, "max": 6000},
{"min": 6001, "max": 9000},
{"min": 9001, "max": 13000},
{"min": 13001, "max": 60000},
{"min": 60001, "max": 70000},
{"min": 70001, "max": 80000}
]
),
# 设置图例
legend_opts=options.LegendOpts(
is_show=False,
),
# 设置标题
title_opts=options.TitleOpts(
title="全国平均房价"
)
)
#
# 4.渲染
map1.render("files/04地图.html")
成果展示
省份地图
from pyecharts.charts import Map
from pyecharts import options
# 1.创建地图对象
map2 = Map()
# 2.添加数据
map2.add("房价", [('成都市', 12000), ("乐山市", 6000)], maptype="四川", zoom=1.5, # 设置默认的倍数
min_scale_limit=0.8, # 设置最小值缩小倍数
max_scale_limit=1.5, # 设置最大值放大倍数
)
# 4.渲染
map2.render("files/05省份地图.html")
成果展示
市区地图
#市区地图
map3 =Map()
map3.add("房价", [('金堂', 12000)],maptype="成都")
map3.render("files/07成都地图.html")
世界地图
from pyecharts.charts import Map
from pyecharts import options
# 1.创建地图对象
map3 = Map()
map3.add("房价",[("China",1002)],maptype='world')
map3.set_series_opts(
label_opts=options.LabelOpts(
is_show=False,
)
)
map3.render("files/06世界地图.html")
成果展示
5.词云
from pyecharts.charts import WordCloud
from pyecharts import options
# 1.创建图表
wc = WordCloud()
# 2.添加数据
wc.add("",
[('王者荣耀', 834958), ('英雄联盟', 1928394), ('阴阳师', 2384), ('原神', 5647), ('羊了个羊', 45367), ('蛋仔派对', 3456), ("猎梦者", 345),
("红色警戒", 34562), ("魔兽", 68493), ("刀塔", 7483), ('qq农场', 98), ('金铲铲', 261726), ("神庙逃亡", 23728), ("节奏大师", 2033),
("找你妹", 90), ("大富翁", 459), ("保卫萝卜", 3673)],
# 形状: cardioid(心形),diamond(菱形 正方形), star(星形),pentagon (五边形), triangle(三角形)
shape="star",
word_size_range=(5, 90) #设置字体最小值和最大值
)
# 3.渲染
wc.render("files/08词云.html")
成果展示