python数据可视化的操作有哪些
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,小编给大家分享一下python数据可视化的操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!0. 前言数据处理过程中
千家信息网最后更新 2025年02月19日python数据可视化的操作有哪些
小编给大家分享一下python数据可视化的操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
0. 前言
数据处理过程中,可视化可以更直观得感受数据,因此打算结合自己的一些实践经理,以效果为准写这篇博客。内容应该会不断扩充。
1. matplotlib中figure、subplot和plot等什么关系
记住这几个关系可以结合实际。假设你去外面写生要带哪些工具呢,包括画板、画纸还有画笔,那么就可以一一对应了。
函数 | 工具 |
---|---|
figure | 画板 |
subplot、add_subplot | 画纸 |
plot、hist、scatter | 画笔 |
那么再往深处想,画纸贴在画板上,画纸可以裁剪成多块布局在画板上,而画笔只能画在纸上,可能这样讲有点笼统,下面一个代码配合注释就可以清晰明白啦。(感觉需要记住以下代码)
代码
import matplotlib.pyplot as pltimport numpy as np# 拿起画板fig = plt.figure()# 在画板上贴上画纸ax1 = fig.add_subplot(221)ax2 = fig.add_subplot(222)ax3 = fig.add_subplot(223)# 一步完成(直接拿起画板和画纸)-----------------# ax1 = plt.subplot(221)# ax2 = plt.subplot(222)# ax3 = plt.subplot(223)# ----------------------------------------# 在画纸上作图ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3)ax2.scatter(np.arange(30), np.arange(30) + 3 * np.random.randn(30))ax3.plot(np.random.randn(50).cumsum(), 'k--')plt.show()
运行结果
函数解析
代码行 | 作用 | 参考链接 |
---|---|---|
ax1.hist(np.random.randn(100), bins=20, color=‘k’, alpha=0.3) | 绘制直方图 | python用hist参数解读 |
2. 画图的细节修改
依次完成以下的画图效果:
1.一个正弦函数和一个随机数值的曲线,正弦函数直线,随机数值曲线虚线以及其他样式修改;
2.图例、标签等修改;
3.加上标注,标注范围内用红色矩形表示。
2.1 plot画图形式修改
代码
import matplotlib.pyplot as pltimport numpy as np# 拿起画板fig = plt.figure()# 贴上画纸ax1 = fig.add_subplot(111)# 数据准备x_sin = np.arange(0, 6, 0.001) # [0, 6]y_sin = np.sin(x_sin)data_random = np.zeros(7) # 生成[-1,1]的7个随机数for i in range(0, 6): data_random[i] = np.random.uniform(-1, 1)# 画图ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3)ax1.plot(data_random, linestyle='dashed', color='b', marker='o')plt.show()
运行结果
2.2 添加图例、标签等
代码
import matplotlib.pyplot as pltimport numpy as np# 拿起画板fig = plt.figure()# 贴上画纸ax1 = fig.add_subplot(111)# 数据准备x_sin = np.arange(0, 6, 0.001) # [0, 6]y_sin = np.sin(x_sin)data_random = np.zeros(7) # 生成[-1,1]的7个随机数for i in range(0, 6): data_random[i] = np.random.uniform(-1, 1)# 画图ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')ax1.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')#-----------------添加部分------------------# 添加标题ax1.set_title('Title')# 添加x轴名称ax1.set_xlabel('x')# 设置x轴坐标范围ax1.set_xlim(xmin=0, xmax=6)# 添加图例,在plot处加上labelax1.legend(loc='best')#----------------------------------------plt.show()
运行结果
2.3 在图上画注解和矩形
代码
import matplotlib.pyplot as pltimport numpy as np# 拿起画板fig = plt.figure()# 贴上画纸ax1 = fig.add_subplot(111)# 数据准备x_sin = np.arange(0, 6, 0.001) # [0, 6]y_sin = np.sin(x_sin)data_random = np.zeros(7) # 生成[-1,1]的7个随机数for i in range(0, 6): data_random[i] = np.random.uniform(-1, 1)# 画图ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')ax1.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')# 添加标题ax1.set_title('Title')# 添加x轴名称ax1.set_xlabel('x')# 设置x轴坐标范围ax1.set_xlim(xmin=0, xmax=6)# 添加图例ax1.legend(loc='best')#-----------------添加部分------------------# 注解ax1.annotate('max', xy=((np.pi) / 2, np.sin(np.pi/2)), xytext=((np.pi) / 2, np.sin(np.pi/2)-0.2), arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4), horizontalalignment='left', verticalalignment='top')ax1.annotate('min', xy=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)), xytext=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)+0.2), arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4), horizontalalignment='left', verticalalignment='top')# 矩形print(ax1.axis())rect = plt.Rectangle((np.pi / 2, ax1.axis()[2]), np.pi, ax1.axis()[3] - ax1.axis()[2], color='r', alpha=0.3) # 起始坐标点,width, heightax1.add_patch(rect)#-----------------------------------------plt.show()
运行结果
3. 图形保存
plt.savefig('figpath.png', dpi=400)
注意要放在show前面。
完整代码:
import matplotlib.pyplot as pltimport numpy as np# 拿起画板fig = plt.figure()# 贴上画纸ax1 = fig.add_subplot(221)ax2 = fig.add_subplot(222)ax3 = fig.add_subplot(223)# 数据准备x_sin = np.arange(0, 6, 0.001) # [0, 6]y_sin = np.sin(x_sin)data_random = np.zeros(7) # 生成[-1,1]的7个随机数for i in range(0, 6): data_random[i] = np.random.uniform(-1, 1)# 画图ax1.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')ax1.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')ax2.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')ax2.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')ax3.plot(x_sin, y_sin, linestyle='-', color='g', linewidth=3, label='sin')ax3.plot(data_random, linestyle='dashed', color='b', marker='o', label='random')# # 添加标题ax2.set_title('Title')# 添加x轴名称ax2.set_xlabel('x')# 设置x轴坐标范围ax2.set_xlim(xmin=0, xmax=6)# 添加图例ax2.legend(loc='best')ax3.set_title('Title')# 添加x轴名称ax3.set_xlabel('x')# 设置x轴坐标范围ax3.set_xlim(xmin=0, xmax=6)# 添加图例ax3.legend(loc='best')# 注解ax3.annotate('max', xy=((np.pi) / 2, np.sin(np.pi/2)), xytext=((np.pi) / 2, np.sin(np.pi/2)-0.2), arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4), horizontalalignment='left', verticalalignment='top')ax3.annotate('min', xy=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)), xytext=((np.pi) * 3 / 2, np.sin(np.pi * 3 / 2)+0.2), arrowprops=dict(facecolor='black', headwidth=4, width=2,headlength=4), horizontalalignment='left', verticalalignment='top')# 矩形# print(ax1.axis())rect = plt.Rectangle((np.pi / 2, ax3.axis()[2]), np.pi, ax3.axis()[3] - ax3.axis()[2], color='r', alpha=0.3) # 起始坐标点,width, heightax3.add_patch(rect)#-----------------添加部分------------------plt.savefig('figpath.png', dpi=400)#------------------------------------------plt.show()
以上是"python数据可视化的操作有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
画板
画纸
数据
代码
图例
范围
函数
名称
坐标
矩形
结果
随机数
准备
生成
运行
可视化
内容
标题
注解
画笔
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
启动服务器run serve
电商网站用什么数据库好
杭州湖畔网络技术有限公司简介
垃圾分类软件开发的发展趋势
软件开发的性别歧视问题
客户端编程软件开发
软件开发工具软件下载
学计算机软件开发在哪学
软件开发公司哪家品牌好
忐忑视频软件开发
FBI服务器被攻击h
服务器安全博客
最新的网络安全概念股
网络技术在职研究生
如何查看腾讯云服务器的ip地址
是网络安全工作要哪些专业
物联网软件开发程序员
ios软件开发招聘
电脑版战斗学院服务器在哪里
在软件开发中项目经理的职责
数据库运营分析
app软件开发学习哪里有
十寸窗口服务器评测
我的世界小周服务器地址
湖南通讯软件开发服务值得推荐
安全教育之网络安全主题班会
黑龙江新一代网络技术服务技术
网络技术国家分数线
软件开发高级技术
18年国家网络安全宣传周活动主题是