互助资金盘网站开发,站长之家ppt模板,濮阳建设工程交易网中标公示,全国招聘网站排名画图实战-Python实现某产品全年销量数据多种样式可视化 学习心得Matplotlib说明什么是Matplotlib#xff1f;Matplotlib特性Matplotlib安装 产品订单量-折线图某产品全年订单量数据数据提取和分析绘制折线图 产品订单销售额-条形图某产品全年订单销售额数据绘制条形… 画图实战-Python实现某产品全年销量数据多种样式可视化 学习心得Matplotlib说明什么是MatplotlibMatplotlib特性Matplotlib安装 产品订单量-折线图某产品全年订单量数据数据提取和分析绘制折线图 产品订单销售额-条形图某产品全年订单销售额数据绘制条形图 某产品xx-直方图某产品xx-散点图某产品xx-饼图某产品xx-多图效果总结 学习心得
有时候我们需要对某些数据进行分析得到一些可视化效果图而这些效果图可以直观展示给我们数据的变化趋势比如某产品的月销量数据、销售额的地区分布、销售增长和季节的变化情况、产品的贡献度分析等等本文主要针对某产品全年销量数据绘制各种不同样式的图表以不同样式展示数据学习本文建议对Python的matplotlib第三库有一定的了解。
Matplotlib说明
什么是Matplotlib
Matplotlib是一个Python的2D绘图库它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形Matplotlib可生成绘图、直方图、功率谱、条形图、错误图、散点图、折线图等Matplotlib是Python生态系统的一个重要组成部分是用于可视化的绘图库Matplotlib提供了一整套和matlab相似的命令API和可视化界面可以生成出版质量级别的精美图形。
Matplotlib特性
Matplotlib图表中的元素包含以下内容 A、X轴和Y轴 B、X轴和Y轴刻度 C、X轴和Y轴标签 D、绘图区域。 关于hold属性 A、hold属性默认为True可在一幅图中绘制多个曲线 B、将hold属性修改为False每一个plot都会覆盖前面的plot这种方法不推荐建议使用默认的。 常用方法 A、可使用grid方法为图添加网格线 B、还可以使用其他方法如axis方法、xlim方法、ylim方法、legend方法 关于配置方面 matplotlib配置信息是从配置文件读取的。在配置文件中可以为matplotlib的几乎所有属性指定永久有效的默认 主要为永久配置和动态配置。 Matplotlib安装
直接使用pip安装即可 pip install matplotlib 产品订单量-折线图
某产品全年订单量数据
以下是某产品全年的销量数据
某产品JanFebMarAprMayJunJulAugSepOctNovDec订单量indent15334250115220866659433950退货量returned61318235598423125221724
全年12个月数据中每个月对应有产品的订单量和退货量。
数据提取和分析
我们可以把月份用以下变量表示
month [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]print(f月份为{month})
# 输出月份为[Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]复制运行
产品对应的销量分两种一种是订单量一种是退货量可用两个变量来存放数据
# 订单量
indent [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]# 退货量
returned [6, 13, 18, 23, 55, 98, 42, 31, 25, 22, 17, 24]print(f每月订单量为{indent})
print(f每月退货量为{returned})绘制折线图
折线图中我们绘制两条折线一条是每月的退货量一条是每月的订单量而折线就是坐标组成这里就需要多个两个坐标比如x1、y1、x2、y2针对我们提供的数据可以把坐标定义为 x1 month y1 indent x2 month y2 returned 那对应的代码为
import subprocess
import sys
subprocess.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})# 订单量
indent [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]# 退货量
returned [6, 13, 18, 23, 55, 98, 42, 31, 25, 22, 17, 24]
print(f每月订单量为{indent})
print(f每月退货量为{returned})# 绘制折线图
plt.plot(month, indent, label订单量,linewidth2, colorr, markero,markerfacecolorblue, markersize8)plt.plot(month, returned, label退货量,linewidth2, colory, markero,markerfacecolorblue, markersize8)plt.xlabel(月份)
plt.ylabel(数量)
plt.title(某产品全年订单销售情况)
plt.rcParams[font.sans-serif] [SimHei]
plt.legend()
# plt.show()
plt.savefig(plot.jpg)运行上边代码后折线图的效果为 产品订单销售额-条形图
某产品全年订单销售额数据
以下是某产品全年的销量数据
订单量indent/m110/530/750/970/1190/13110/15130/17150/19退货量returned/m220/340/560/780/910011120/13140/15160/17
图中的意思为对应的订单量的销售额和对应的退货量的价格。
绘制条形图
条形图中我们绘制双条形一条是每月的退货量及对应价格一条是每月的订单量和销售额针对我们提供的数据可以把坐标定义为 x1 indent y1 m1 x2 returned y2 m2 那对应的代码为
import subprocess
import sys
subprocess.check_call([sys.executable, -m, pip, install, matplotlib])
import matplotlib.pyplot as plt# 订单量
indent [10, 30, 50, 70, 90, 110, 130, 150]
# 销售额
m1 [5, 7, 9, 11, 13, 15, 17, 19]# 退货量
returned [20, 40, 60, 80, 100, 120, 140, 160]
# 价格
m2 [3, 5, 7, 9, 11, 13, 15, 17]# 绘制折线图
plt.bar(indent, m1, width3, label订单量-销售额, colorr, )
plt.bar(returned, m2, width3, label退货量-价格, colory)plt.xlabel(数量)
plt.ylabel(价格)
plt.title(某产品全年订单销售额情况)
plt.rcParams[font.sans-serif] [SimHei]
plt.legend()
# plt.show()
plt.savefig(plot.jpg)运行以上代码后效果图为 注意后续的数据和操作逻辑和前边的一样为了快速了解其使用不再描述详细的数据仅用示例说明。
某产品xx-直方图
那对应的代码为
import subprocess
import sys
subprocess.check_call([sys.executable, -m, pip, install, matplotlib])
import matplotlib.pyplot as pltdata [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]
x range(0, 100, 2)# 绘制直方图
plt.hist(data, x, rwidth3, label直方图, colory)plt.xlabel(X)
plt.ylabel(Y)
plt.title(直方图)
plt.rcParams[font.sans-serif] [SimHei]
plt.legend()
# plt.show()
plt.savefig(plot.jpg)运行代码后效果如下 某产品xx-散点图
那对应的代码为
import subprocess
import sys
subprocess.check_call([sys.executable, -m, pip, install, matplotlib])
import matplotlib.pyplot as pltdata [15, 33, 42, 50, 115, 20, 86, 66, 59, 43, 39, 50]
x range(0, len(data))# 绘制散点图
plt.scatter(x, data, label散点图, s15)plt.xlabel(X)
plt.ylabel(Y)
plt.title(散点图)
plt.rcParams[font.sans-serif] [SimHei]
plt.legend()
# plt.show()
plt.savefig(plot.jpg)运行代码后效果为 某产品xx-饼图
对应代码为
import subprocess
import sys
subprocess.check_call([sys.executable, -m, pip, install, matplotlib])
subprocess.check_call([sys.executable, -m, pip, install, numpy])
import matplotlib.pyplot as plt
import numpy as npdata np.array([10, 20, 15, 15, 5, 5, 30])plt.pie(data,labels[P1, P2, P3, P4, P5, P6, P7],colors[#8B008B, #FF1493, #4B0082, #B0C4DE, #E1FFFF, #008080, #00FF7F],explode(0, 0, 0.3, 0, 0, 0.2, 0), autopct%.2f%%,)
plt.title(饼图)
plt.rcParams[font.sans-serif] [SimHei]
# plt.show()
plt.savefig(plot.jpg)运行代码效果为
某产品xx-多图效果
对应代码为
import subprocess
import sys
subprocess.check_call([sys.executable, -m, pip, install, matplotlib])
subprocess.check_call([sys.executable, -m, pip, install, numpy])
import matplotlib.pyplot as plt
import numpy as npx np.array([10, 50])
y np.array([10, 80])
plt.subplot(2, 2, 1)
plt.plot(x, y)
plt.title(图1)x np.array([10, 20, 30, 40])
y np.array([10, 30, 50, 110])
plt.subplot(2, 2, 2)
plt.plot(x, y)
plt.title(图2)x np.array([10, 20, 30, 40])
y np.array([50, 60, 70, 80])
plt.subplot(2, 2, 3)
plt.plot(x, y)
plt.title(图3)x np.array([20, 25, 30, 35])
y np.array([40, 45, 50, 55])
plt.subplot(2, 2, 4)
plt.plot(x, y)
plt.title(图4)plt.suptitle(多图显示)
plt.rcParams[font.sans-serif] [SimHei]
#plt.show()
plt.savefig(plot.jpg)运行代码后的效果为
总结
Python实现某产品全年销量数据多种样式可视化主要是应用了python的matplotlib库进行绘制各种图表除了以上的几种图表还有柱状图、网格图等等。学习的时候建议使用真实的数据可以真正达到分析问题的效果。