一、绘制仪表盘
通过Gauge绘制仪表盘
#仪表盘
from pyecharts import options as opts
from pyecharts.charts import Gauge,Page
ga=Gauge()
ga.add("商家A",[("购买率",55.5)],axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(color=[(0.3,"#67e0e3"),
(0.7,"#35a2da"),(1,"#fd6d")],width=40)))
ga.set_global_opts(title_opts=opts.TitleOpts(title="例图"),legend_opts=opts.LegendOpts(is_show=False))
ga.render_notebook()
二、绘制词云
通过WordCloud绘制词云
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
words=[("时尚", 43),
("网络奇闻", 15),
("旅游出行", 438),
("景点类型", 957),
("国内游", 927),
("远途出行方式", 908),
("酒店", 693),
("关注景点", 611),
("旅游网站偏好", 512),
("期望年薪", 20),
("实习", 16),
("雇主类型", 10),
("星座运势", 789),
("星座", 316),
("算命", 303),
("解梦", 196),
("风水", 93),
("面相分析", 47),
("手相", 32),
("公益", 90)]
wd=WordCloud()
wd.add("", words, word_size_range=[12, 55])
wd.set_global_opts(title_opts=opts.TitleOpts(title="词云图"))
wd.render_notebook()
三、绘制组合图表
#组合图表
from pyecharts.charts import Bar, Grid, Line, Scatter
a=['教室','课桌','椅子','黑板','投影仪']
b=[30,40,20,13,11]
c=["衬衫", "羊毛衫", "领带", "裤子", "风衣"]
d=[110, 136, 100, 175, 150]
#并列柱状图
bar=Bar()
bar.add_xaxis(a)
bar.add_yaxis("商品a",b)
bar.add_yaxis("商品b",d) #绘制并列柱状图
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱状图绘制",subtitle="A和B公司"))
bar.render_notebook()
#折线图
line=Line()
line.add_xaxis(c)
line.add_yaxis("商品a",b)
line.add_yaxis("商品b",d)
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图绘制",subtitle="A和B公司",pos_top="48%"),
legend_opts=opts.LegendOpts(pos_top="48%"))
line.render_notebook()
grid = Grid()
grid.add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
grid.add(line, grid_opts=opts.GridOpts(pos_top="60%"))
grid.render_notebook()
四、绘制桑基图
桑基图即桑基能量分流图,也叫桑基能量平衡图,它是一种特定类型的流程图,通常用于能源、材料成分、金融等数据的可视化分析,通过Sankey绘制桑基图。
from pyecharts import options as opts
from pyecharts.charts import Sankey
import pandas as pd
data=pd.DataFrame(
{"source": ["category1","category1","category3","category4","category4","category3"],
"target":["category5","category6","category5","category8","category6","category8"],
"value": [10,15,20,25,30,35]})
# display(data)
node=[]
for i in range(2):
values=data.iloc[:,i].unique()
for j in values:
dic={}
dic['name']=j
node.append(dic)
# print(node)
links=[]
for i in data.values:
dic={}
dic['source']=i[0]
dic['target']=i[1]
dic['value']=i[2]
links.append(dic)
sk=(Sankey().add(
"桑基图",
node,
links,
linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source"),
label_opts=opts.LabelOpts(position="right"),node_gap=25
)
.set_global_opts(title_opts=opts.TitleOpts(title="桑基图")))
sk.render_notebook()