导入各个图形用到的库:
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Scatter # 导入散点图绘制模块
from pyecharts.charts import Line # 导入折线图绘制模块
from pyecharts.charts import Bar # 导入柱状图绘制模块
from pyecharts.charts import Pie # 导入饼状图绘制模块
from pyecharts.charts import Scatter # 导入散点图绘制模块
from pyecharts.charts import WordCloud # 导入词云图绘制模块
from pyecharts.commons.utils import JsCode
#charts.render('name.html')保存图片至html格式
定义基础数据:
x=['星期一','星期二','星期三','星期四','星期五','星期七','星期日']
y1=[100,200,300,400,300,400,300]
y2=[200,300,400,300,400,300,600]
折线图:
def line(titlename,x,y1,y2):
line=(
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis("数据1",y1)
.add_yaxis("数据2",y2)
.set_global_opts(title_opts=opts.TitleOpts(title=f"{titlename}"))
)
return line.render_notebook()
line("Line",x,y1,y2)
柱状图:
def bar(titlename,x,y1,y2):
bar = (
Bar()
.add_xaxis(x)
.add_yaxis("数据1", y1)
.add_yaxis("数据2", y2)
.set_global_opts(title_opts=opts.TitleOpts(title=f"{titlename}"),
toolbox_opts=opts.BrushOpts(),)
)
return bar.render_notebook()
bar("柱状图",x,y1,y2)
饼状图:
def pie(titlename,x,y):#传入x,y
pie = (
Pie()
.add(
series_name="数据",#鼠标放置显示类别标签
data_pair=[list(z) for z in zip(x, y)],
radius=["15%", "50%"], # 饼图内圈和外圈的大小比例
center=["50%", "50%"], # 饼图的位置:左边距和上边距
label_opts=opts.LabelOpts(is_show=True), # 显示数据和百分比
)
.set_global_opts(title_opts=opts.TitleOpts(title=f"{titlename}"),legend_opts=opts.LegendOpts(orient="horizontal")) # 图例在左边和垂直显示
.set_series_opts(
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"#鼠标放置显示格式
),
)
)
return pie.render_notebook()
pie('饼状图',x,y1)
散点图:
def scatter(titlename,x,y1,y2):
scatter=(
Scatter()
.add_xaxis(x)
.add_yaxis('数据1',y1)
.add_yaxis('数据2',y2)
.set_global_opts(
title_opts=opts.TitleOpts(title=f'{titlename}'),
xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),# 显示x轴分割线
yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True))# 显示y轴分割线
)
)
return scatter.render_notebook()
scatter('散点图',x,y1,y2)
面积图:
def square(titlename,x,y1,y2):
square = (
Line()
.add_xaxis(x)
.add_yaxis('数据1', y1, areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
.add_yaxis('数据2', y2, areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
.set_global_opts(
title_opts=opts.TitleOpts(title=f'{titlename}')
)
)
return square.render_notebook()
square("面积图",x,y1,y2)
词云图:
def wordcloud(name,x,y):
words = [list(z) for z in zip(x, y)]
wordcloud = (
WordCloud()
.add("", words, word_size_range=[6,60],textstyle_opts=opts.TextStyleOpts(font_family='Microsoft YaHei',font_weight='bold'))
.set_global_opts(title_opts=opts.TitleOpts(title=f"{name}",title_textstyle_opts = opts.TextStyleOpts(font_size = 25,color="midnightblue")))
)
return wordcloud.render_notebook()
wordcloud('词云图',x,y1)