文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python数据可视化的操作有哪些

2023-06-29 00:16

关注

小编给大家分享一下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()

运行结果

python数据可视化的操作有哪些

函数解析

代码行作用参考链接
ax1.hist(np.random.randn(100), bins=20, color=‘k’, alpha=0.3)绘制直方图python用hist参数解读

2. 画图的细节修改

依次完成以下的画图效果:

python数据可视化的操作有哪些

一个正弦函数和一个随机数值的曲线,正弦函数直线,随机数值曲线虚线以及其他样式修改;

图例、标签等修改;

加上标注,标注范围内用红色矩形表示。

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()

运行结果

python数据可视化的操作有哪些

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()

运行结果

python数据可视化的操作有哪些

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()

运行结果

python数据可视化的操作有哪些

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数据可视化的操作有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯