17、Python的数据可视化展现

一、使用echarts实现可视化展现

ECharts(Enterprise Charts)是百度开源的一款基于 JavaScript 的数据可视化库,专注于构建交互式的、高性能的图表和可视化大屏。它广泛应用于 Web 开发、数据分析、商业智能等领域,能够帮助开发者快速实现复杂的数据展示需求。

首先安装python版本pyecharts:

pip  iinstall  pyecharts

1、echarts柱状图

from pyecharts.charts import Bar

from pyecharts import options as opts

# 数据准备

x = [“衬衫”, “羊毛衫”, “雪纺衫”, “裤子”, “高跟鞋”, “袜子”]

y = [5, 20, 36, 10, 75, 90]

# 创建柱状图对象

#set_global_opts 这是一个方法,用于设置图表的全局配置选项。

bar = (

    Bar()

    .add_xaxis(x)

.add_yaxis(“商家A”, y)

    .set_global_opts(title_opts=opts.TitleOpts(title=”柱状图示例”))

)

# 渲染图表到HTML文件

bar.render(“data/bar_chart.html”)

到 data目录下打开bar_chart.html文件:

2、echarts饼状图

# 导入所需的模块

from pyecharts.charts import Pie  # 导入饼状图类

from pyecharts import options as opts  # 导入配置项类

# 准备数据

data = [

    (“苹果”, 30),  # 数据项,格式为 (标签, 值)

    (“香蕉”, 20),

    (“橙子”, 15),

    (“葡萄”, 25),

    (“梨”, 10)

]

# 创建饼状图对象

pie = Pie()

# 添加数据到饼状图

pie.add(“”, data)  # 第一个参数是系列名称,这里为空字符串,第二个参数是数据列表

#set_global_opts方法用于设置全局配置项,如图表标题。

#title_opts是一个 itleOpts对象,用于设置图表标题。title参数指定标题文本。

pie.set_global_opts(

    title_opts=opts.TitleOpts(title=”水果销售占比”)  # 设置图表标题

)

#set_series_opts方法用于设置系列配置项,如标签格式。

#label_opts是一个LabelOpts对象,用于设置标签的格式。formatter参数是一个字符串模板,用于定义标签的显示格式。

#其中 {b}表示标签,{c}表示值,{d}表示百分比。

pie.set_series_opts(

    label_opts=opts.LabelOpts(formatter=”{b}: {c} ({d}%)”)  

)

# 渲染图表并生成HTML文件

pie.render(“data/pie_chart.html”)

3、echarts折线图

# 导入所需的模块

from pyecharts.charts import Line  # 导入折线图类

from pyecharts import options as opts  # 导入配置项类

# 准备数据

x_data = [“周一”, “周二”, “周三”, “周四”, “周五”, “周六”, “周日”]  # X轴数据

y_data = [120, 200, 150, 80, 70, 110, 130]  # Y轴数据

# 创建折线图对象

line = Line()

# 添加X轴数据

line.add_xaxis(x_data)

# 添加Y轴数据

line.add_yaxis(“销售额”, y_data)  # 第一个参数是系列名称,第二个参数是数据列表

# 设置全局配置项

line.set_global_opts(

    title_opts=opts.TitleOpts(title=”一周销售额趋势”),  # 设置图表标题

    xaxis_opts=opts.AxisOpts(name=”日期”),  # 设置X轴名称

    yaxis_opts=opts.AxisOpts(name=”销售额(元)”)  # 设置Y轴名称

)

# 设置系列配置项

line.set_series_opts(

    label_opts=opts.LabelOpts(is_show=False)  # 不显示数据标签

)

# 渲染图表并生成HTML文件

line.render(“data/line_chart.html”)  

二、matplotlib可视化展现

1、matplotlib柱状图

# 示例-1:这个示例展示了如何绘制一个简单的柱状图,显示不同科目的成绩。

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图

import warnings  # 导入warnings模块,用于忽略警告

# 忽略警告

warnings.filterwarnings(“ignore”)

# 设置Matplotlib的字体以支持中文

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文显示字体为黑体

# 数据准备

subjects = ['数学', '语文', '英语', '物理', '化学']  # 科目列表

scores = [90, 85, 78, 88, 92]  # 每个科目的成绩

# 创建图形对象和轴对象

plt.figure(figsize=(10, 6))  # 创建一个新的图形对象,设置图形的大小为10×6英寸

# 使用bar函数绘制柱状图,指定科目作为x轴,成绩作为y轴,颜色为天蓝色

plt.bar(subjects, scores, color='skyblue')  

# 添加标题和标签

plt.title('各科成绩柱状图')  # 设置图形的标题

plt.xlabel('科目')  # 设置x轴的标签

plt.ylabel('成绩')  # 设置y轴的标签

# 显示图形

plt.show()  

#示例 2:分组柱状图

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图

import warnings  # 导入warnings模块,用于忽略警告

# 忽略警告

warnings.filterwarnings(“ignore”)

# 设置Matplotlib的字体以支持中文

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文显示字体为黑体

plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 数据准备

subjects = ['数学', '语文', '英语', '物理', '化学']  # 科目列表

class_a_scores = [90, 85, 78, 88, 92]  # 班级A的成绩

class_b_scores = [88, 82, 80, 90, 85]  # 班级B的成绩

# 设置柱子的位置和宽度

bar_width = 0.35  # 柱子的宽度

index = range(len(subjects))  # x轴的索引位置

# 创建图形对象和轴对象

plt.figure(figsize=(10, 6))  # 创建一个新的图形对象,设置图形的大小为10×6英寸

# 绘制班级A的柱状图

plt.bar(index, class_a_scores, bar_width, label='班级A', color='skyblue')  

# 绘制班级B的柱状图,位置向右偏移一个柱子宽度

plt.bar([i + bar_width for i in index], class_b_scores, bar_width, label='班级B', color='lightgreen')  

# 添加标题和标签

plt.title('两个班级各科成绩对比')  # 设置图形的标题

plt.xlabel('科目')  # 设置x轴的标签

plt.ylabel('成绩')  # 设置y轴的标签

# 设置x轴的刻度位置和标签,使标签位于两个柱子的中间

plt.xticks([i + bar_width / 2 for i in index], subjects)  

# 添加图例

plt.legend()  # 显示图例

# 显示图形

plt.show()  # 显示图形

2、matplotlib饼状图

#示例 1:基本饼状图

#这个示例展示了如何创建一个简单的饼状图,用于表示不同类别所占的比例。

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图

# 数据准备

labels = ['苹果', '香蕉', '橙子', '葡萄']  # 类别标签

sizes = [25, 35, 15, 25]  # 每个类别的比例

# 创建图形对象

fig, ax = plt.subplots()  # 创建一个新的图形对象和轴对象

# 绘制饼状图

ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)

    # sizes: 每个类别的比例

    # labels: 类别标签

    # autopct: 显示每个扇区的百分比,格式为1位小数

    # startangle: 饼状图的起始角度,90表示从12点钟方向开始

# 添加标题

ax.set_title('水果销售占比')  # 设置图形的标题

# 显示图形

plt.show()  # 显示图形

# 示例 2:带突出效果的饼状图

#这个示例展示了如何创建一个带有突出效果的饼状图,用于强调某个特定类别。

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,用于绘图

# 数据准备

labels = ['苹果', '香蕉', '橙子', '葡萄']  # 类别标签

sizes = [25, 35, 15, 25]  # 每个类别的比例

explode = (0, 0.1, 0, 0)  # 将第二个扇区(香蕉)突出显示

# 创建图形对象

fig, ax = plt.subplots()  # 创建一个新的图形对象和轴对象

# 绘制饼状图

ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', startangle=90,

shadow=True)  # 绘制饼状图

    # sizes: 每个类别的比例

    # explode: 指定要突出显示的扇区及其程度

    # labels: 类别标签

    # autopct: 显示每个扇区的百分比,格式为1位小数

    # startangle: 饼状图的起始角度,90表示从12点钟方向开始

    # shadow: 是否添加阴影效果

'''

资料查找:

autopct='%1.1f%%' 是一个格式化字符串,通常用于 Python 的 matplotlib 库中绘制饼图(pie chart)时,用来控制饼图中每个扇区的百分比标签的

显示格式。这个字符串中的各个部分有特定的意义:

– %1.1f:这部分是一个格式化代码,用于定义浮点数的显示格式。

  – %:格式化的开始标志。

  – 1.1:这里有两个数字,第一个数字 1 表示最小宽度(即该字段至少占用的字符数),但在这个上下文中通常不重要,因为百分比数值一般不会特别短。

    第二个数字 1 表示小数点后保留的位数,这里是保留一位小数。

  – f:表示这是一个浮点数。

– %%:在格式化字符串中,单个 % 符号是占位符,用于插入变量值。如果你想在最终的输出中显示实际的 % 符号,你需要用两个 %% 来表示一个 % 符号。

综合起来,'%1.1f%%' 这个格式化字符串的意思是:将一个浮点数格式化为保留一位小数,并在其后面加上百分号 %。例如,如果某个扇区的百分比是

25.678%,使用 '%1.1f%%' 格式化后会显示为 25.7%

'''

# 添加标题

ax.set_title('水果销售占比(突出显示香蕉)')  # 设置图形的标题

# 显示图形

plt.show()  # 显示图形

3、matplotlib折线图

# 示例 1: 基本折线图

#这个案例展示了如何绘制一个简单的折线图,表示时间序列数据的变化。

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,通常简写为plt

# 定义数据

x = [1, 2, 3, 4, 5]  # x轴的数据点

y = [2, 3, 5, 7, 11]  # y轴的数据点

# 创建一个新的图形

plt.figure()  # 创建一个新的图形窗口

# 使用plot函数绘制折线图,marker='o'表示在每个数据点上添加一个圆圈标记

plt.plot(x, y, marker='o')  

# 添加标题和标签

plt.title('基本折线图')  # 设置图形的标题

plt.xlabel('X轴')  # 设置x轴的标签

plt.ylabel('Y轴')  # 设置y轴的标签

# 显示图形

plt.show()  # 显示图形

# 示例 2: 多条折线图

#这个案例展示了如何在同一张图上绘制多条折线图,表示多个数据系列的变化。

import matplotlib.pyplot as plt  # 导入matplotlib的pyplot模块,通常简写为plt

# 定义数据

x = [1, 2, 3, 4, 5]  # x轴的数据点

y1 = [2, 3, 5, 7, 11]  # 第一条折线的数据点

y2 = [3, 5, 7, 9, 13]  # 第二条折线的数据点

# 创建一个新的图形

plt.figure()  # 创建一个新的图形窗口

# 绘制第一条折线图,label='数据系列1'用于图例,marker='o'表示在每个数据点上添加一个圆圈标记

plt.plot(x, y1, label='数据系列1', marker='o')  

# 绘制第二条折线图,label='数据系列2'用于图例,marker='s'表示在每个数据点上添加一个正方形标记

plt.plot(x, y2, label='数据系列2', marker='s')  

# 添加标题和标签

plt.title('多条折线图')  # 设置图形的标题

plt.xlabel('X轴')  # 设置x轴的标签

plt.ylabel('Y轴')  # 设置y轴的标签

# 添加图例

plt.legend()  # 显示图例,图例的内容由每条折线的label参数决定

# 显示图形

plt.show()  # 显示图形

4、matplotlib散点图

#在这个示例中,我们将绘制一些随机生成的数据点。

import matplotlib.pyplot as plt

import numpy as np

# 生成随机数据

x = np.random.rand(50)  # 生成50个0到1之间的随机数

y = np.random.rand(50)  # 生成50个0到1之间的随机数

# 创建一个新的图形

plt.figure()

# 绘制散点图

plt.scatter(x, y, color='blue', marker='o')  # 使用蓝色圆点绘制散点图

# 设置标题和标签

plt.title('基本的散点图')  # 设置图表的标题

plt.xlabel('X轴')  # 设置X轴的标签

plt.ylabel('Y轴')  # 设置Y轴的标签

# 显示图形

plt.show()

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容