ToB企服应用市场:ToB评测及商务社交产业平台

标题: Python实践:基于Matplotlib实现某产品全年销量数据可视化 [打印本页]

作者: 卖不甜枣    时间: 2024-5-14 14:27
标题: Python实践:基于Matplotlib实现某产品全年销量数据可视化
本文分享自华为云社区《画图实战-Python实现某产品全年销量数据多种样式可视化》,作者:虫无涯。
学习心得

Matplotlib说明

什么是Matplotlib?

Matplotlib特性

A、X轴和Y轴;B、X轴和Y轴刻度;C、X轴和Y轴标签;D、画图地区。

A、hold属性默以为True,可在一幅图中绘制多个曲线;B、将hold属性修改为False,每一个plot都会覆盖前面的plot(这种方法不推荐,建议使用默认的)。

A、可使用grid方法为图添加网格线;B、还可以使用其他方法,如axis方法、xlim方法、ylim方法、legend方法;

matplotlib配置信息是从配置文件读取的。在配置文件中可以为matplotlib的几乎所有属性指定永久有效的默认;重要为永久配置和动态配置。
Matplotlib安装

直接使用pip安装即可:
pip install matplotlib
产品订单量-折线图

某产品全年订单量数据

 
数据提取和分析

  1. month = ["Jan", "Feb", "Mar", "Apr",
  2.          "May", "Jun", "Jul", "Aug",
  3.          "Sep", "Oct", "Nov", "Dec"]
  4.          
  5. print(f"月份为:{month}")
  6. # 输出:月份为:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
复制代码
复制运行
  1. # 订单量
  2. indent = [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]
  3. # 退货量
  4. returned = [6, 13, 18, 23, 55, 98, 42, 31, 25, 22, 17, 24]
  5. print(f"每月订单量为:{indent}")
  6. print(f"每月退货量为:{returned}")
复制代码
绘制折线图

x1 = month y1 = indentx2= month y2 = returned

  1. import subprocessimport syssubprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])import matplotlib.pyplot as pltmonth = ["Jan", "Feb", "Mar", "Apr",         "May", "Jun", "Jul", "Aug",         "Sep", "Oct", "Nov", "Dec"]print(f"月份为:{month}")# 订单量
  2. indent = [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]
  3. # 退货量
  4. returned = [6, 13, 18, 23, 55, 98, 42, 31, 25, 22, 17, 24]
  5. print(f"每月订单量为:{indent}")
  6. print(f"每月退货量为:{returned}")# 绘制折线图plt.plot(month, indent, label='订单量',         linewidth=2, color='r', marker='o',        markerfacecolor='blue', markersize=8)plt.plot(month, returned, label='退货量',        linewidth=2, color='y', marker='o',        markerfacecolor='blue', markersize=8)plt.xlabel('月份')plt.ylabel('数目')plt.title('某产品全年订单销售环境')plt.rcParams['font.sans-serif'] = ['SimHei']plt.legend()# plt.show()plt.savefig("plot.jpg")
复制代码
 

 
产品订单&销售额-条形图

某产品全年订单&销售额数据


绘制条形图

x1 = indent y1 = m1x2= returned y2 = m2

  1. import subprocess
  2. import sys
  3. subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
  4. import matplotlib.pyplot as plt
  5. # 订单量
  6. indent = [10, 30, 50, 70, 90, 110, 130, 150]
  7. # 销售额
  8. m1 = [5, 7, 9, 11, 13, 15, 17, 19]
  9. # 退货量
  10. returned = [20, 40, 60, 80, 100, 120, 140, 160]
  11. # 价格
  12. m2 = [3, 5, 7, 9, 11, 13, 15, 17]
  13. # 绘制折线图
  14. plt.bar(indent, m1, width=3, label='订单量-销售额', color='r', )
  15. plt.bar(returned, m2, width=3, label='退货量-价格', color='y')
  16. plt.xlabel('数量')
  17. plt.ylabel('价格')
  18. plt.title('某产品全年订单&销售额情况')
  19. plt.rcParams['font.sans-serif'] = ['SimHei']
  20. plt.legend()
  21. # plt.show()
  22. plt.savefig("plot.jpg")
复制代码
 

 
留意:后续的数据和操纵逻辑和前边的一样,为了快速了解其使用,不再描述具体的数据,仅用示例说明。
某产品xx-直方图

  1. import subprocess
  2. import sys
  3. subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
  4. import matplotlib.pyplot as plt
  5. data = [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]
  6. x = range(0, 100, 2)
  7. # 绘制直方图
  8. plt.hist(data, x, rwidth=3, label='直方图', color='y')
  9. plt.xlabel('X')
  10. plt.ylabel('Y')
  11. plt.title('直方图')
  12. plt.rcParams['font.sans-serif'] = ['SimHei']
  13. plt.legend()
  14. # plt.show()
  15. plt.savefig("plot.jpg")
复制代码
 

某产品xx-散点图

  1. import subprocess
  2. import sys
  3. subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
  4. import matplotlib.pyplot as plt
  5. data = [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]
  6. x = range(0, len(data))
  7. # 绘制散点图
  8. plt.scatter(x, data, label='散点图', s=15)
  9. plt.xlabel('X')
  10. plt.ylabel('Y')
  11. plt.title('散点图')
  12. plt.rcParams['font.sans-serif'] = ['SimHei']
  13. plt.legend()
  14. # plt.show()
  15. plt.savefig("plot.jpg")
复制代码
 

 
某产品xx-饼图

  1. import subprocess
  2. import sys
  3. subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
  4. subprocess.check_call([sys.executable, "-m", "pip", "install", "numpy"])
  5. import matplotlib.pyplot as plt
  6. import numpy as np
  7. data = np.array([10, 20, 15, 15, 5, 5, 30])
  8. plt.pie(data,
  9.         labels=['P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7'],
  10.         colors=["#8B008B", "#FF1493", "#4B0082", "#B0C4DE", "#E1FFFF", "#008080", "#00FF7F"],
  11.         explode=(0, 0, 0.3, 0, 0, 0.2, 0),
  12.         autopct='%.2f%%',
  13.         )
  14. plt.title('饼图')
  15. plt.rcParams['font.sans-serif'] = ['SimHei']
  16. # plt.show()
  17. plt.savefig("plot.jpg")
复制代码

 

 
某产品xx-多图结果

  1. import subprocess
  2. import sys
  3. subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
  4. subprocess.check_call([sys.executable, "-m", "pip", "install", "numpy"])
  5. import matplotlib.pyplot as plt
  6. import numpy as np
  7. x = np.array([10, 50])
  8. y = np.array([10, 80])
  9. plt.subplot(2, 2, 1)
  10. plt.plot(x, y)
  11. plt.title("图1")
  12. x = np.array([10, 20, 30, 40])
  13. y = np.array([10, 30, 50, 110])
  14. plt.subplot(2, 2, 2)
  15. plt.plot(x, y)
  16. plt.title("图2")
  17. x = np.array([10, 20, 30, 40])
  18. y = np.array([50, 60, 70, 80])
  19. plt.subplot(2, 2, 3)
  20. plt.plot(x, y)
  21. plt.title("图3")
  22. x = np.array([20, 25, 30, 35])
  23. y = np.array([40, 45, 50, 55])
  24. plt.subplot(2, 2, 4)
  25. plt.plot(x, y)
  26. plt.title("图4")
  27. plt.suptitle("多图显示")
  28. plt.rcParams['font.sans-serif'] = ['SimHei']
  29. #plt.show()
  30. plt.savefig("plot.jpg")
复制代码

 

 
总结

Python实现某产品全年销量数据多种样式可视化,重要是应用了python的matplotlib库进行绘制各种图表,除了以上的几种图表,还有柱状图、网格图等等。学习的时候建议使用真实的数据,可以真正达到分析问题的结果。
 
点击关注,第一时间了解华为云新鲜技术~
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4