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

开源 python 应用 开发(七)数据可视化

 最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。

 链接:

开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-CSDN博客

开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-CSDN博客

开源 python 应用 开发(三)python语法介绍-CSDN博客

开源 python 应用 开发(四)python文件和系统综合应用-CSDN博客

开源 python 应用 开发(五)python opencv之目标检测-CSDN博客

开源 python 应用 开发(六)网络爬虫-CSDN博客

开源 python 应用 开发(七)数据可视化-CSDN博客

 推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

 推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章节内容如下:

一、基本图形

1.1  安装matplotlib库

使用vscode的终端或cmd进行安装

pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/

1.2  安装成功效果

1.3  正弦波显示代码

import matplotlib.pyplot as plt
import numpy as np#pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/
# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 创建图形
plt.figure(figsize=(8, 6))# 绘制线图
plt.plot(x, y, label='sin(x)', color='blue', linewidth=2)# 添加标题和标签
plt.title('Sine Wave', fontsize=16)
plt.xlabel('X-axis', fontsize=14)
plt.ylabel('Y-axis', fontsize=14)# 添加图例
plt.legend(fontsize=12)# 显示网格
plt.grid(True, linestyle='--', alpha=0.7)# 显示图形
plt.show()

1.4  正弦波显示效果

1.5  矩形代码

import matplotlib.pyplot as plt
import matplotlib.patches as patches# 创建一个图形和坐标轴
fig, ax = plt.subplots()# 创建一个长方形(Rectangle)
# 参数:(左下角x坐标, 左下角y坐标), 宽度, 高度
rectangle = patches.Rectangle((0.2, 0.3), 0.5, 0.4, linewidth=2, edgecolor='r', facecolor='blue', alpha=0.5)# 添加到坐标轴
ax.add_patch(rectangle)# 设置坐标轴范围
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)# 显示图形
plt.title("Rectangle using matplotlib")
plt.show()

1.6  矩形显示效果

二、综合销售图形

2.1  安装pandas 库

pip install pandas -i https://mirrors.aliyun.com/pypi/simple/

2.2  代码

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np# 准备数据
data = {"月份": ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],"销售额": [336, 389, 704, 469, 414, 464, 409, 483, 481, 525, 567, 465],"阳光硅片": [100, 110, 130, 114, 160, 176, 154, 131, 121, 231, 114, 231],"华测硅片": [113, 114, 231, 232, 123, 165, 132, 176, 198, 113, 321, 123],"TD测试": [123, 165, 343, 123, 131, 123, 123, 176, 162, 181, 132, 111]
}
df = pd.DataFrame(data)# 设置全局样式
plt.style.use('ggplot')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 创建画布和子图(增大画布尺寸并调整布局参数)
fig = plt.figure(figsize=(20, 16))  # 宽度增加到20,高度增加到16
fig.suptitle('2023年销售数据分析报告', fontsize=18, y=1.02)# 调整子图之间的间距参数
plt.subplots_adjust(wspace=0.3, hspace=0.4)  # 增加水平和垂直间距# 子图1:趋势分析(折线图)
ax1 = plt.subplot(2, 2, 1)
ax1.plot(df["月份"], df["销售额"], marker="o", label="总销售额", linewidth=2, color='#1f77b4')
ax1.plot(df["月份"], df["阳光硅片"], marker="s", label="阳光硅片", color='#ff7f0e')
ax1.plot(df["月份"], df["华测硅片"], marker="^", label="华测硅片", color='#2ca02c')
ax1.plot(df["月份"], df["TD测试"], marker="d", label="TD测试", color='#d62728')
ax1.set_title("1. 销售额及品牌趋势分析", pad=13, fontsize=14)  # 增加标题间距和字体大小
#ax1.set_xlabel("月份", fontsize=12)
ax1.set_ylabel("销售额(万)", fontsize=12)
ax1.legend(fontsize=10)
ax1.grid(linestyle="--")# 子图2:品牌占比(堆叠面积图)
ax2 = plt.subplot(2, 2, 2)
ax2.stackplot(df["月份"], df["阳光硅片"], df["华测硅片"], df["TD测试"],labels=["阳光硅片", "华测硅片", "TD测试"],colors=["#FFA07A", "#98FB98", "#87CEFA"]
)
ax2.set_title("2. 品牌销售额占比(堆叠视图)", pad=13, fontsize=14)
#ax2.set_xlabel("月份", fontsize=12)
ax2.set_ylabel("销售额(万)", fontsize=12)
ax2.legend(loc="upper left", fontsize=10)# 子图3:品牌对比(柱状图)
ax3 = plt.subplot(2, 2, 3)
width = 0.25
x = np.arange(len(df["月份"]))
ax3.bar(x - width, df["阳光硅片"], width, label="阳光硅片", color="#FFA07A")
ax3.bar(x, df["华测硅片"], width, label="华测硅片", color="#98FB98")
ax3.bar(x + width, df["TD测试"], width, label="TD测试", color="#87CEFA")
ax3.set_title("3. 各品牌月度销售额对比", pad=13, fontsize=14)
ax3.set_ylabel("销售额(万)", fontsize=12)
ax3.set_xticks(x)
ax3.set_xticklabels(df["月份"], fontsize=10)
ax3.legend(fontsize=10)# 子图4:相关性分析(热力图)
ax4 = plt.subplot(2, 2, 4)
corr = df[["销售额", "阳光硅片", "华测硅片", "TD测试"]].corr()
im = ax4.imshow(corr, cmap="coolwarm", vmin=-1, vmax=1)
ax4.set_title("4. 销售额与品牌的相关性", pad=13, fontsize=14)
ax4.set_xticks(np.arange(len(corr.columns)))
ax4.set_yticks(np.arange(len(corr.columns)))
ax4.set_xticklabels(corr.columns, fontsize=10)
ax4.set_yticklabels(corr.columns, fontsize=10)
cbar = plt.colorbar(im, ax=ax4)
cbar.ax.tick_params(labelsize=10)  # 设置colorbar刻度字体大小# 添加相关系数文本(调整字体大小)
for i in range(len(corr.columns)):for j in range(len(corr.columns)):ax4.text(j, i, f"{corr.iloc[i, j]:.2f}", ha="center", va="center", color="black", fontsize=10)plt.tight_layout(pad=4.0)  # 增加整体边距
plt.show()

2.3  显示效果

http://www.lryc.cn/news/590181.html

相关文章:

  • Linux 定时器应用示例(修正版)
  • GIT版本回退
  • Python中可以反转的数据类型
  • GaussDB 数据库架构师修炼(五) 存储容量评估
  • 搜索框的显示与隐藏(展开与收起)
  • el-input 回显怎么用符号¥和变量拼接展示?
  • openEuler 22.03 LTS Rootless Docker 安装指南
  • MongoDB复杂查询 聚合框架
  • 洛谷 P11247 [GESP202409 六级] 算法学习-普及/提高-
  • pymongo库:简易方式存取数据
  • ETL还是ELT,大数据处理怎么选更靠谱?
  • 步态循环(Gait Cycle)
  • 【MySQL事务和锁】回顾事务
  • 图像质量评价(Image Quality Assessment,IQA)
  • 调试bug记录
  • 【基于飞浆训练车牌识别模型】
  • Docker——Redis
  • 【C语言网络编程】HTTP 客户端请求(发送请求报文过程)
  • Mybatis07-缓存
  • 比特币技术简史 第二章:密码学基础 - 哈希函数、公钥密码学与数字签名
  • 今日行情明日机会——20250716
  • S7-200 SMART PLC:模拟量模块接线全解析
  • 汽车功能安全-相关项集成和测试(系统集成测试系统合格性测试)-12
  • xss-labs通关
  • “Datawhale AI夏令营”基于带货视频评论的用户洞察挑战赛2
  • lesson15:Python的文件操作
  • Docker 中的动态配置:docker update 命令与环境变量管理
  • Hadoop架构演进:从1.0到2.0的深度对比与优化解析
  • Docker 安装和配置 MySQL 8.0.36 的详细步骤
  • 力扣-146.LRU缓存机制