首页 > 编程语言 >python:使用matplotlib库绘制图像(一)

python:使用matplotlib库绘制图像(一)

时间:2024-07-08 14:30:18浏览次数:19  
标签:plot min python max matplotlib True np import 绘制

作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!

一、Matplotlib图像基础

1.1  基本绘图实例:sin、cos函数图

代码详解:

1. from pylab import *:导入pylab库中所有函数和变量。pylab是一个python库,它集成了matplotlib和numpy库,提供了一个更简洁的接口来绘制图形。

2. import numpy as np:导入numpy库。

3. import matplotlib.pyplot as plt:导入了matplot库的pyplot模块,pylot是一个绘图接口,提供了方便的绘制函数和命令。

4. x = np.linspace(-np.pi, np.pi, 256, endpoint=True):使用numpy的linspace函数创建了一个从-π到π的等间距数组,共有256个元素。endpoint=True表示包含π。

5. c, s = np.cos(x), np.sin(x):使用numpy创建cos(x),sin(x)函数。

6. plt.plot(x, c):使用pyplot的plot函数绘制了余弦函数的图形。

from pylab import *
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)

plt.plot(x, c)
plt.plot(x, s)

show()

1.2 plot()函数详解

plot()函数是matplotlib中用于绘制线图的主要函数。

plot()函数的参数包括(按照参数书写顺序):

1. x:x轴上的点。

2. y:y轴上的点。

3. color:定义线的颜色,'blue', 'green', 'red'等。

4. linewidth:定义线的宽度。

5. linestyle:定义线的样式,'-'表示实线,':'表示虚线,'--'表示双虚线。

6. marker:定义数据点的标记形状,'o'表示圆点,'s'表示正方形等。

7. markercolor:定义标记的颜色。

8. markersize:定义标记的大小。

9. alpha:定义线的透明度,值在0~1之间。

10. label:用于图例的标签。

11. 其他参数:如title,xlabel,ylabel等。

from pylab import *
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)

plt.plot(x, c, 'b|-')
plt.plot(x, s)

show()


1.3 matplotlib中绘图的默认配置

代码详解:

  1. figure(figsize=(8, 6), dpi=80): 这行代码创建了一个新的图形窗口,并设置了窗口的大小和分辨率。figsize参数指定了窗口的宽度和高度,dpi参数指定了分辨率。

  2. subplot(1, 1, 1): 这行代码在当前图形窗口中创建了一个新的子图。subplot函数可以创建一个子图网格,这里我们创建了一个1行1列的网格,所以只有一个子图。

  3. xticks(np.linspace(-4, 4, 9, endpoint=True), fontproperties='Times New Roman', size=20): 这行代码设置了x轴的刻度标记,并指定了刻度标记的字体和大小。

  4. yticks(np.linspace(-1, 1, 5, endpoint=True)):np.linspace(-1, 1, 5, endpoint=True)是一个numpy函数,它创建了一个等间距的数组,从-1开始,到1结束,包含5个元素。由于endpoint=True,-1和1本身也会作为刻度标记,所以总共有5个刻度标记(-1, -0.5, 0, 0.5, 1)。

from pylab import *
import numpy as np
import matplotlib.pylab as plt

# 创建一个8*6点(point)的图,并设置分辨率为80
figure(figsize=(8, 6), dpi=80)

# 创建一个新的1*1的子图,接下来的图样绘制在其中的第一块中
subplot(1, 1, 1)

# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为2.5的线条
plot(X, C, color='blue', linewidth=2.5, linestyle='-')

# 绘制正弦曲线,使用绿色的、连续的、宽度为2.0的线条
plot(X, S, color='green', linewidth=2.0, linestyle='-')

# 设置横轴的上下限
xlim(-4.0, 4.0)

# 设置横轴记号
xticks(np.linspace(-4, 4, 9, endpoint=True), fontproperties='Times New Roman', size=20)

# 设置纵轴记号
yticks(np.linspace(-1, 1, 5, endpoint=True))

#设置横纵坐标的名称以及对应字体格式
font = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 20,
}

# 设置横轴标签
plt.xlabel('X axis', font)

# 设置纵轴标签
plt.ylabel('Y axis', font)

# 设置图像标题
plt.title('Demo Figure', font)

# 以分辨率72来保存图片
savefig('demo.png', dpi=72)

# 在屏幕上显示
show()


1.4 设置图的横纵坐标的上下界

代码详解:

  1. x_min, x_max = X.min(), X.max(): 这行代码计算了x轴上的最小值和最大值,并将它们存储在变量x_minx_max中。

  2. c_min, c_max = C.min(), C.max(): 这行代码计算了余弦函数上的最小值和最大值,并将它们存储在变量c_minc_max中。

  3. s_min, s_max = S.min(), C.max(): 这行代码计算了正弦函数上的最小值和最大值,并将它们存储在变量s_mins_max中。

  4. y_min, y_max = min(c_min, s_min), max(c_max, s_max): 这行代码计算了y轴上的最小值和最大值,这些值是余弦和正弦函数的最小值和最大值中的较小者和较大者。

  5. dx = (x_max - x_min) * 0.2: 这行代码计算了x轴上下界偏移量的一半,这将用于调整x轴的范围,以便更美观地显示图像。

  6. dy = (y_max - y_min) * 0.2: 在matplotlib中,xlimylim函数用于设置坐标轴的上下限。默认情况下,这些函数会直接使用数据的最小值和最大值作为坐标轴的上下限,但是有时候,为了使图形看起来更加美观或者为了更好地展示数据,你可能需要稍微调整这些值。例如,如果你有一个数据集,它的x轴范围是[1, 10],y轴范围是[0, 100],那么x_max - x_min将是9,y_max - y_min将是99。如果你设置dxdy(x_max - x_min) * 0.2(y_max - y_min) * 0.2,那么x轴的上下限将变为[1 - 0.2, 10 + 0.2],即[0.8, 10.2],y轴的上下限将变为[0 - 0.2, 100 + 0.2],即[-0.2, 100.2]。

from pylab import *
import numpy as np

# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)

x_min, x_max = X.min(), X.max()
c_min, c_max = C.min(), C.max()
s_min, s_max = S.min(), C.max()
y_min, y_max = min(c_min, s_min), max(c_max, s_max)

# 设置横纵坐标上下界的偏移量,这样能够完整的显示图像且最美观
dx = (x_max - x_min) * 0.2
dy = (y_max - y_min) * 0.2

# 设置上下限
xlim(x_min - dx, x_max + dx)
ylim(y_min - dy, y_max + dy)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为1的线条
plot(X, C, color='blue', linewidth=2.5, linestyle='-')

# 绘制正弦曲线,使用绿色的、连续的、宽度为1的线条
plot(X, S, color='green', linewidth=2.0, linestyle='-')

show()



 

内容太多,下一篇继续! 

标签:plot,min,python,max,matplotlib,True,np,import,绘制
From: https://blog.csdn.net/2302_80978287/article/details/140264000

相关文章

  • 人脸识别与美颜算法实战:基于Python、机器学习与深度学习
    代码和pdf书等:GitHub-guozhe1992/read引言与基础知识:介绍人脸识别与美颜算法的基本概念、应用场景以及Python编程和机器学习的基础知识。视频图像处理技术:详细讲解基于Anaconda和PyCharm的环境搭建,以及视频图像处理的基础技术,如图像读取、显示、保存和格式转换等。抖音特效......
  • python模型文件转换,将.pth转换为.onnx
    为了方便在C#项目中引用onnx文件,于是需要将pth模型文件转换为onnx类型。转换的模型项目地址是:https://github.com/xuebinqin/U-2-Net,以下为python的示例代码:1importtorch2importsys3importos4model_dir=os.path.join(os.path.dirname(__file__),'model')5sys......
  • Python之文件处理
    python进行文件处理其实也很简单,无法就那么几个要点。1、打开文件2、读取文件3、写入文件围绕上面这三个要点展开了许多的方法,调用方法进行各种花样的文件处理。听起来仿佛很牛逼,实际上没有多少花头,深刻理解了也就自然而然的掌握了。例如先自己创建一个文件,假设在D:\python-......
  • 井字棋 AI-Python
    1.介绍程序中的算法:MinMax算法,也称为极小化极大算法,是一种在博弈论中广泛应用的算法,用于在两个竞争者之间进行零和博弈时,找出最优策略。该算法适用于井字棋、象棋等游戏,旨在为玩家提供最佳决策。其基本思想是假设对手不会犯错误,从而在最坏情况下保证自己的最大利益。Minim......
  • 使用Python之前的准备
    鉴于配置Ottertune项目花了整整两天还没配好,其中一个很重要的原因是使用古老的Python包及其错综复杂的依赖关系,而我平时使用C++开发较多,较少使用Python。为了避免下次配置环境时重蹈覆辙,我决定将本次配置环境的经验教训记录下来。启用虚拟环境目的:便于实验不同的Python版本虚......
  • 在Windows环境下安装Python 3.11的步骤
    在Windows环境下安装Python3.11的步骤相对直接。下面是详细的安装教程:第一步:下载Python3.11安装程序访问Python官方网站的下载页面:https://www.python.org/downloads/在页面中找到适用于Windows的Python3.11版本,点击下载对应你操作系统的安装包。通常,你会看到一个明显......
  • Python中的面向对象编程:从入门到实践
    Python中的面向对象编程:从入门到实践一、引言面向对象编程(Object-OrientedProgramming,OOP)是Python语言中一个核心概念,它提供了一种处理程序复杂性的方法。通过OOP,我们可以使用对象和类的概念来模拟现实世界的实体和行为。本文将深入探讨Python中的面向对象编程,包括类与对......
  • Python酷库之旅-第三方库Pandas(010)
    目录一、用法精讲22、pandas.read_hdf函数22-1、语法22-2、参数22-3、功能22-4、返回值22-5、说明22-6、用法22-6-1、数据准备22-6-2、代码示例22-6-3、结果输出23、pandas.HDFStore.put方法23-1、语法23-2、参数23-3、功能23-4、返回值23-5、说明23-6、用法......
  • doc转docx(java-python)
    本文功能借助python实现的doc转docx,调研了一下开源的工具或者类库转换效果不理想,所以选择python 1./resources/convert.py(py文件放到resources下)importargparsefromdoc2docximportconvertdefconvert_doc_to_docx(docFilePath,docxFilePath):convert(docFi......
  • python-requests库
    request库里边传参时params和data和json的区别:params=params是get请求的参数,传入后等同于'https:xx.com/search?q=python&cat=1001'data是post请求的参数,.post(url,data=params),使用application/x-www-form-urlencoded编码json是post请求的参数:.post(url,json=params),内部自......