一、使用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()
暂无评论内容