第八节 pyecharts模块

一、pyecharts库

库的名称:pyecharts

作用:python中数据可视化工具,可以将数据处理成漂亮的图表。

导入模块:

from pyecharts.charts import Bar
from pyecharts.charts import line
from pyecharts.charts import Pie

二、柱状图功能总结

1. Bar()

作用:柱状图初始化

格式:bar = Bar()

2. add_xaxis()

作用:增加x轴数据

格式:bar.add_xaxis(["青山","明月","春风"])

表示x轴有三个类型,分别是青山、明月、绿水。

3. add_yaxis()

作用:增加y轴数据

格式:bar.add_yaxis("出现次数",[11,12,10])

表示y轴表示出现次数,分别是青山11次、明月12次、绿水10次。

4. render()

作用:表示生成文件

格式:bar.render("唐诗中的意境.html")

表示生成 唐诗中的意境.html 文件,可以直接用浏览器打开

from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["青山","明月","春风"])
bar.add_yaxis("出现次数",[11,12,10])
bar.render("唐诗中的意境.html")

alt 柱状图

5. reversal_axis()

作用:翻转x轴和y轴

格式:bar.reversal_axis()

翻转之后x轴的内容竖直显示,y轴的内容横行显示

6. label_opts=opts.LabelOpts(position="right")

作用:设置标签值在柱状图的右侧显示

格式:bar.add_yaxis("出现次数",count,label_opts=opts.LabelOpts(position="right"))

import pandas as pd 
from pyecharts.charts import Bar
from pyecharts import options as opts
df = pd.read_excel("热门景点.xlsx")
data = df.sort_values(by="销售量",ascending="False")
name = list(data.head(10)["景点名称"])
count = list(data.head(10)["销售量"])

bar = Bar()
bar.add_xaxis(name)
bar.add_yaxis("出现次数",count,label_opts=opts.LabelOpts(position="right"))
bar.reversal_axis()
bar.render("唐诗中的意境.html")

alt 翻转柱状图

7.set_global_opts()

作用:设置x轴标签倾斜度

格式:bar.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)))

参数为-15表示顺时针旋转15度

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
from xes.tool import *
xopen() #打开文件夹

df = pd.read_excel("热门景点.xlsx")
data = df.sort_values(by="门票销售量", ascending=False)
name = list(data.head(10)["景点名称"])
count = list(data.head(10)["门票销售量"])
# 绘制柱狀图
bar = Bar()
bar.add_xaxis(name)
bar.add_yaxis("门票销售量", count)
bar.set_global_opts(
    xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15))
)
bar.render("全国景点门票销量TOP10.html")

alt x轴标签倾斜度

三、折线图功能总结

1. Line()

作用:线性图初始化

格式:c = Line()

2. add_xaxis()

作用:增加x轴数据

格式:

c.add_xaxis(list(df["年份"]))

表示x轴表示年份。

3. add_yaxis()

作用:增加y轴数据

绘制多个折线图的方法就是添加多个y轴数据

格式:bar.add_yaxis("名称",数据)

第一个参数表示折现表示的类别名称,第二个参数表示传入的数据

c.add_yaxis("各行平均工资", list(df["各行平均工资"]))
c.add_yaxis("制造业", list(df["制造业"]))
c.add_yaxis("计算机和软件业", list(df["计算机和软件业"]))
c.add_yaxis("金融", list(df["金融"]))
c.add_yaxis("房地产业", list(df["房地产业"]))
c.add_yaxis("教育", list(df["教育"]))

4. render()

作用:表示生成文件

格式:c.render("各行业平均工资分析.html")

表示生成 各行业平均工资分析.html 文件,可以直接用浏览器打开

import pandas as pd
from pyecharts.charts import Line
df = pd.read_excel("各行业平均工资.xlsx")
print(df.columns)
c = Line()
c.add_xaxis(list(df["年份"]))
c.add_yaxis("各行平均工资", list(df["各行平均工资"]))
c.add_yaxis("制造业", list(df["制造业"]))
c.add_yaxis("计算机和软件业", list(df["计算机和软件业"]))
c.add_yaxis("金融", list(df["金融"]))
c.add_yaxis("房地产业", list(df["房地产业"]))
c.add_yaxis("教育", list(df["教育"]))
c.render("各行业平均工资分析.html")

运行结果:

alt 折线图

5. 数据的比较分析法

纵向比较:上升还是下降

横向比较:哪个整体更高、哪个增速更快、哪个更接近均值

import pandas as pd
from pyecharts.charts import Line

 # 分析就业人数
df = pd.read_excel("各行就业人数.xlsx")
print(df.columns)
c = Line()
c.add_xaxis(list(df["年份"]))
c.add_yaxis("总人数", list(df["总人数"]))
c.add_yaxis("制造业", list(df["制造业"]))
c.add_yaxis("计算机和软件业", list(df["计算机和软件业"]))
c.add_yaxis("金融", list(df["金融"]))
c.add_yaxis("房地产业", list(df["房地产业"]))
c.add_yaxis("教育", list(df["教育"]))
c.render("各行业就业人数分析.html")

运行结果:

alt 数据分析折线图

四、饼图功能总结

1. Pie()

作用:创建饼图对象

格式:c = Pie()

2. add()

作用:增加数据

格式:c.add(系列名称,data,radius=[内圆半径,外圆半径])

系列名称参数为字符串格式,鼠标滑过饼图,显示系列名称。

data参数是一个元组,表示系列数据,是分组统计的结果。

radius参数用百分数表示,radius=["20%","80%"]就是一个内圆半径是百分之二十,外圆半径是百分之八十的饼图。

3. render()

作用:表示生成饼图

格式:c.render("学生打分结果.html")

表示生成 学生打分结果.html 文件,可以直接用浏览器打开

from pyecharts.charts import Pie
import pandas as pd
from xes.tool import *
xopen() 
# --------数据分析---------------------------------------
df = pd.read_excel("动漫评分.xlsx")
print(df.columns)
print(df["学生打分"].max())  # 最高成绩
print(df["学生打分"].min())  # 最低成绩
scoreLab = pd.cut(df["学生打分"], bins = [0, 20, 40, 60, 80, 100],
                  labels=["超级不喜欢", "不喜欢", "一般般", "喜欢", "超喜欢"])
print(scoreLab)
result = df["学生打分"].groupby(by=scoreLab).count()
print(result)

# --------数据可视化---------------------------------------
data = [("超级不喜欢", 19), ("不喜欢", 29), ("一般般", 44), ("喜欢", 33), ("超喜欢", 129)]
c = Pie()
c.add("分数分布", data, radius=["40%", "80%"])
c.set_colors(["blue", "green", "yellow", "red", "pink"])
c.render("学生打分结果.html")

alt 饼图

results matching ""

    No results matching ""