当前位置: 首页 > news >正文

双 11 数据可视化:Pyecharts 与 Matplotlib 绘制商品价格对比及动态饼图

目录

  • 掌握可视化交互
  • 根据表格中商品信息,分别使用Pyecharts与Matplotlib库绘制柱形图。
      • 使用 Pyecharts 绘制柱形图
      • 使用 Matplotlib 绘制柱形图
      • 解释
  • 设置中文字体
      • 静态饼图
      • 动态饼图
        • 使用 Pyecharts 绘制动态饼图
      • 解释
  • 总结

掌握可视化交互

  • 了解基础:知道如何使用按钮、滑块等来改变图表。
  • 使用工具:学会用Tableau、Power BI或D3.js等工具制作图表。
  • 设计友好:确保图表既好看又好用。

进行数据可视化评估

  • 检查质量:看图表是否准确、清晰、好用。

  • 征求反馈:问别人怎么看你的图表,哪里可以改得更好。

  • 持续优化:根据反馈调整图表,使之更完美。

    了解数据可视化的价值

  • 快速理解:图表让复杂的数字变得容易理解。

  • 有效沟通:图表能帮助不同人更好地交流信息。

  • 发现新知:通过图表可以看到数据中的趋势和规律。

  • 增强记忆:图表比文字更容易让人记住信息。


Pyecharts与Matplotlib库交互功能对比

根据表格中商品信息,分别使用Pyecharts与Matplotlib库绘制柱形图。

商品名称库存数量原价(元)双十一价格(元)优惠方式
zhangsan牌智能手表100670603满600减67
lisi牌蓝牙耳机150750675满700减75

使用 Pyecharts 绘制柱形图

from pyecharts import options as opts
from pyecharts.charts import Bar# 数据准备
products = ["zhangsan牌智能手表", "lisi牌蓝牙耳机"]
original_prices = [670, 750]
sale_prices = [603, 675]bar = (Bar().add_xaxis(products).add_yaxis("原价(元)", original_prices).add_yaxis("双十一价格(元)", sale_prices).set_global_opts(title_opts=opts.TitleOpts(title="商品价格对比"),xaxis_opts=opts.AxisOpts(name="商品名称"),yaxis_opts=opts.AxisOpts(name="价格(元)"),)
)
bar.render('D:/edge/product_prices.html')  # 渲染成html文件

在这里插入图片描述

使用 Matplotlib 绘制柱形图

import matplotlib.pyplot as plt# 数据准备
products = ["zhangsan牌智能手表", "lisi牌蓝牙耳机"]
original_prices = [670, 750]
sale_prices = [603, 675]
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号# 将 range 转换为 list
ind = list(range(len(products)))  # 这里做了转换
width = 0.35fig, ax = plt.subplots()
rects1 = ax.bar([i - width/2 for i in ind], original_prices, width, label='原价(元)')
rects2 = ax.bar([i + width/2 for i in ind], sale_prices, width, label='双十一价格(元)')ax.set_ylabel('价格(元)')
ax.set_title('商品价格对比')
ax.set_xticks(ind)
ax.set_xticklabels(products)
ax.legend()plt.show()

在这里插入图片描述

解释

  1. Pyecharts 示例

    • 使用 Bar 类创建柱形图。
    • add_xaxis 方法设置横轴数据(商品名称)。
    • add_yaxis 方法分别添加原价和双十一价格的数据。
    • set_global_opts 方法设置图表的标题、横轴和纵轴的标签。
    • 最后使用 render 方法将图表保存为 HTML 文件。
  2. Matplotlib 示例

    • 使用 bar 方法创建柱形图。
    • ind 是每个商品的位置索引。
    • width 是每个柱子的宽度。
    • rects1rects2 分别代表原价和双十一价格的柱子。
    • ax.set_xticksax.set_xticklabels 设置横轴的标签。
    • ax.legend 添加图例。
    • 最后使用 plt.show 显示图表。

问题
在使用 Matplotlib 时,默认情况下可能不支持中文显示。为了正确显示中文,需要设置合适的字体。

设置中文字体

plt.rcParams[‘font.sans-serif’] = [‘SimHei’] # 使用黑体 plt.rcParams[‘axes.unicode_minus’] = False # 正常显示负号


展示如何绘制静态饼图以及动态饼图(即随时间变化的饼图)。首先,我们从静态饼图开始。

静态饼图

``

import matplotlib.pyplot as plt# 数据准备
labels = ['产品A', '产品B', '产品C', '产品D']
sizes = [30, 20, 15, 35]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # 突出显示第一个部分plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
plt.title('产品销售占比')
plt.show()

动态饼图

动态饼图通常用于展示数据随时间的变化情况。这里我们使用Pyecharts来实现一个简单的动态饼图示例。

使用 Pyecharts 绘制动态饼图
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.globals import ThemeType# 数据准备
data_sequence = [[('产品A', 30), ('产品B', 20), ('产品C', 15), ('产品D', 35)],[('产品A', 25), ('产品B', 25), ('产品C', 20), ('产品D', 30)],[('产品A', 20), ('产品B', 30), ('产品C', 25), ('产品D', 25)],[('产品A', 15), ('产品B', 35), ('产品C', 30), ('产品D', 20)]
]frames = []
for i, data in enumerate(data_sequence):pie = (Pie().add("", data).set_global_opts(title_opts=opts.TitleOpts(title=f"产品销售占比 - 第{i+1}季度")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")))frames.append(pie)# 创建动态图
from pyecharts.charts import Timelinetimeline = (Timeline(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)).add_schema(play_interval=1000, is_auto_play=True, is_loop_play=False)
)for frame in frames:timeline.add(frame, f"第{frames.index(frame)+1}季度")timeline.render('D:/edge/dynamic_pie_chart.html')  # 渲染成html文件

请添加图片描述

解释

  1. Pyecharts 静态饼图

    • 使用 Pie 类创建饼图。
    • add 方法添加数据。
    • set_global_opts 设置全局配置项,如标题。
    • set_series_opts 设置系列配置项,如标签格式。
    • render 方法将图表保存为 HTML 文件。
  2. Matplotlib 静态饼图

    • 使用 pie 方法创建饼图。
    • explode 参数突出显示某个部分。
    • autopct 参数设置百分比显示格式。
    • startangle 参数设置饼图的起始角度。
    • plt.axis('equal') 确保饼图是圆形。
    • plt.show() 显示图表。
  3. Pyecharts 动态饼图

    • 使用 Timeline 类创建时间线动画。
    • add_schema 方法设置时间线的基本配置,如播放间隔、自动播放等。
    • 循环添加每个季度的饼图到时间线中。
    • render 方法将时间线动画保存为 HTML 文件。

总结

数据可视化的相关内容,包括掌握可视化交互、进行数据可视化评估和了解其价值。同时,通过商品价格对比展示了 Pyecharts 和 Matplotlib 库的柱形图绘制方法,并分别讲解了静态和动态饼图的绘制,特别是在 Matplotlib 中设置中文显示及 Pyecharts 动态饼图的复杂实现,为数据可视化提供了丰富的参考和实用的示例。


http://www.mrgr.cn/news/70184.html

相关文章:

  • Android 配置默认输入法
  • windows中docker安装redis和redisinsight记录
  • Android GPU纹理数据拷贝
  • 线性代数(第三章:向量)
  • git重置的四种类型(Git Reset)
  • 【Pikachu】SQL-Inject实战
  • 华大单片机跑历程IO口被写保护怎么解决
  • golang分布式缓存项目 Day3 HTTP服务端
  • 如何让 AI 更懂你:提示词的秘密
  • 海康Android面试题及参考答案
  • 基于SSM超市管理系统的设计与实现(源码+lw+调试)
  • 提取神经网络数学表达式
  • CST如何计算CMA中的模式加权系数MWC
  • 信息安全工程师题
  • 在不久的未来,AI大模型将会如何重塑软件开发流程,会对现在的工作产生什么样的冲击
  • 大模型分布式训练并行技术(五)混合并行
  • Python金融大数据分析概述
  • 量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
  • BLIP/BLIP-2模型全解析
  • Java基础Day-Sixteen
  • 智能量化模型在大数据下的中阳策略发展
  • 测试中的精准校验:Levenshtein库的应用与实践
  • 第三百一十八节 Java线程教程 - Java线程优先级、Java守护线程
  • 鸿蒙NEXT开发笔记(十三)仿微信聊天App的BASE64转像素图
  • kafka(启动集群,使用spring方法,自定义配置)
  • webpack 性能优化方案 - 代码分离(分包)