Python可视化绘图基础

server/2024/12/2 18:45:42/

Python绘图基础

【代码框2-19】——matplotlib绘图的一些基本操作

python"># 图2-2的绘制代码
# 导入相关模块
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'      # 显示中文
plt.rcParams['axes.unicode_minus']=False        # 显示负号# 生成绘图数据
np.random.seed(2025)                           # 设置随机数种子
x = np.random.standard_normal(200)             # 生成200个标准正态分布随机数
y = 1 + 2 * x + np.random.normal(0, 1, 200)    # 生成变量y的随机数# 绘制图像内容
plt.figure(figsize=(8, 6))                     # 设置图形大小(长度和高度)
plt.scatter(x, y, marker='o',color='white',edgecolors='blue') # 绘制散点图,设置c=''可绘制空心fit = np.poly1d(np.polyfit(x, y, deg=1))       # 使用一项式拟合
y_hat = fit(x)                                 # 得到拟合y值
plt.plot(x, y_hat, c='r')                      # 绘制拟合直线,设置为红色
plt.plot(x.mean(), y.mean(), 'ro', markersize=20, fillstyle='bottom')# 添加均值点并设置点的大小、颜色和填充类型
plt.axhline(y.mean(), color='black', ls='-.', lw=1)          # 添加y的均值水平线
plt.axvline(x.mean(), color='black', ls=(0, (5, 10)),lw=1)   # 添加x的均值垂直线# 绘制其他组件
plt.grid(linestyle=':')                  # 添加网格线ax = plt.gca()                           # 得到当前操作的图像
ax.spines['right'].set_color('green')    # 设置边框颜色
ax.spines['left'].set_color('#4169E1')
ax.spines['top'].set_color('royalblue')
ax.spines['bottom'].set_color('b')plt.text(x=0.4, y=-2, s=r'$\hat{y}=\hat{\beta}_0+\hat{\beta}_1x$',fontdict={'size':12, 'bbox':{'fc': 'pink', 'boxstyle': 'round'}}, ha='left')  # 添加文本注释plt.annotate(text=r'均值点', xy=(x.mean(), y.mean()), xytext=(-0.6, 3),arrowprops = {'headwidth': 10, 'headlength': 12, 'width': 2,'facecolor': 'r', 'shrink': 0.1,},fontsize=14, color='red', ha='right')               # 添加带箭头的文本注释plt.title('散点图及拟合直线\n并为图形增加新的元素', fontsize=14) # 添加标题,\n表示换行
plt.xlabel('x = 自变量', fontsize=12)   # 添加x轴标题
plt.ylabel('y = 因变量', fontsize=12)   # 添加y轴标题
plt.legend(['拟合直线'], loc='best',fontsize=10)  # 添加图例plt.show()                                        # 显示图像

在这里插入图片描述

【代码框2-20】——图形布局

python"># 使用subplots函数等分布局(见图2-3)
import matplotlib.pyplot as plt
import numpy as npnp.random.seed(1010)   # 数值随机数种子
plt.subplots(nrows=2, ncols=2, figsize=(7, 5))# 生成2x2网格,整幅图形宽度为8,高度为6plt.subplot(221)        # 在2x2网格的第1个位置绘图
plt.scatter(x=range(50), y=np.random.randint(low=0, high=100, size=50), marker='*', c='red')       # 绘制散点图
plt.title('subplot(221)')              # 绘制标题 plt.subplot(222)        # 在2x2网格的第2个位置绘图
plt.plot(range(20), np.random.normal(5,10,20), marker='o', linestyle='-.', linewidth=2, markersize=5)    # 绘制折线图
plt.title('subplot(222)')plt.subplot(223)        # 在2x2网格的第3个位置绘图
plt.bar(x=range(5), height=range(5, 0, -1), color=['cyan', 'pink'])  # 绘制条形图
plt.title('subplot(223)')plt.subplot(224)        # 在2x2网格的第4个位置绘图
plt.hist(np.random.normal(loc=50, scale=10, size=500), bins=10, color='lightgreen')  # 绘制直方图
plt.title('subplot(224)')plt.tight_layout()     # 紧凑布局# 使用plt.savefig('./图2-3 subplots函数的布局.jpg') 可保存图片

在这里插入图片描述

python"># 使用GridSpec函数自定义布局(见图2-4)
import matplotlib.pyplot as pltfig = plt.figure(figsize=(6, 5))   # 创建新图形,并设置图形大小
grid=plt.GridSpec(3,3)             # 生成3行3列的网格
plt.subplot(grid[0,:2])            # 占据第1行前2列
plt.subplot(grid[0,2])             # 占据第1行第3列
plt.subplot(grid[1,:1])            # 占据第2行第1列
plt.subplot(grid[1,1:])            # 占据第2行后2列
plt.subplot(grid[2,:3])            # 占据第3行前3列fig.tight_layout()                 # 紧凑布局

在这里插入图片描述

python"># 使用add_gridspec函数布局(见图2-5)
import matplotlib.pyplot as plt
import numpy as npnp.random.seed(1010)
fig = plt.figure(figsize=(7, 4))
spec = fig.add_gridspec(nrows=2, ncols=6,width_ratios=[1,1,1,1,1,1], height_ratios=[1,2])
fig.add_subplot(spec[0, 1:3])       # 占据第1行的2~3列
fig.add_subplot(spec[0, 3:])        # 占据第1行的后3列
ax = fig.add_subplot(spec[:, 0])     # 占据第1列
ax = fig.add_subplot(spec[1, 1:4])   # 占据第2行的2~4列
ax = fig.add_subplot(spec[1, 4:])    # 占据第2行第4列后的所有列(这里为5~6列)
fig.tight_layout()

在这里插入图片描述


http://www.ppmy.cn/server/140578.html

相关文章

lua入门教程:lua函数

1. 定义函数 在 Lua 中,你可以使用 function 关键字来定义一个函数。以下是一个简单的例子: -- 定义一个名为 add 的函数,接受两个参数 a 和 b function add(a, b)return a b end你也可以使用匿名函数(lambda 函数)…

《常用深度学习神经网络及其原理与应用场景》

一、总体介绍 一、引言 随着科技的不断发展,深度学习已经成为人工智能领域中最具影响力的技术之一。深度学习神经网络通过模拟人类大脑的神经元结构和工作方式,能够自动学习数据中的特征和模式,从而实现各种复杂的任务,如图像识…

【JAVA】Java基础—Java开发环境搭建:安装JDK与IDE(如IntelliJ IDEA、Eclipse)

Java是一种强大的编程语言,广泛应用于各种领域,包括企业级应用、移动应用(如Android)、Web应用和大数据处理等。Java的“编写一次,到处运行”(Write Once, Run Anywhere, WORA)特性使得它在跨平…

探针台的维护方法

探针台使用后的存放相关介绍 1:使用完后需要注意保持清洁,尽量把灰尘吹干尽,以免灰尘将机械精密部件,光学部件,电学接触面污染,导致仪器精度降低。 2:探针台机体清洁时,避免直接泼…

苹果MacOS最常用快捷键(一)

1、利用find命令查找文件 可参考链接:find使用_mac find命令-CSDN博客文章浏览阅读3.2k次。find 使用_mac find命令https://blog.csdn.net/poinsettia/article/details/129187641 举例: 2、虚拟机系统将Ctrl设置为苹果的Command键 实际上就是将Ctrl键和…

Bert快速入门

Python 语言 BERT 入门:让我们一起“吃透”BERT 1. 什么是 BERT? BERT(Bidirectional Encoder Representations from Transformers)是 Google 提出的预训练语言模型,它通过双向编码器理解文本中的上下文信息&#xf…

docker镜像文件导出导入

1. 导出容器(包含内部服务)为镜像文件(docker commit方法) 原理:docker commit命令允许你将一个容器的当前状态保存为一个新的镜像。这个新镜像将包含容器内所有的文件系统更改,包括安装的软件、配置文件等…

渗透利器-kali工具 (第三章-4) sqlmap之sql注入原理利用

从sql注入到sqlmap的使用 一:认识sql注入漏洞 1.什么是sql注入: 攻击者通过构造不同的sql语句来实现对数据库的操作。 2.两个关键条件: 1.参数用户可以控制。 2.程序原本要执行的代码,拼接了用户输入的数据,然后去执行…