Python的matplotlib模块中pyplot画图方法

本文详细介绍了Matplotlib库的基本用法,包括如何绘制直线、设置线型颜色、调整坐标轴和网格线,以及创建多子图。通过实例展示了如何绘制正弦和余弦函数图像,并讲解了保存图像的方法。此外,还提到了解决中文和负号显示问题的技巧。
摘要由CSDN通过智能技术生成

1. 基本画图方法

最基本的画图方式为,使用plot(x,y)进行画图。其中x、y为形状相同的两个数组,这里以x为横坐标,以y为纵坐标进行画图。

# coding = utf-8

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-10, 10, 0.01)
y = x**2

plt.plot(x, y)
plt.show()

画出的图像如下图所示:

2. 调节线型、颜色、线条宽度等

在使用plot函数进行画图时,可通过linestyle参数调整线型,通过color参数调整颜色,通过linewidth调整线条宽度。

# coding = utf-8

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2, 2, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

# 使用线形图画出y1=x的图像
plt.plot(x, y1,
         linestyle='-.',  # 线型
         linewidth=3,  # 线条宽度
         color='#FF0000',  # 颜色
         label=r'$y1 = sin(x)$'  # 图例
         )

# 使用点状图画出y2=x的图像
plt.plot(x, y2,
         '*',  # 散点形状
         markersize=8,  # 散点大小
         markerfacecolor='#00FF00',  # 散点内部颜色
         markeredgecolor='#0000FF',  # 散点边缘颜色
         label=r'$y1 = cos(x)$'  # 图例
         )
plt.legend(loc='best')  #图例位置
plt.show()

画出的图像如下图所示:

3. 设置标题、坐标轴和网格线

plt.title用于设置标题。

plt.xlim、plt.ylim用于设置坐标轴范围。

plt.xlabel、plt.ylabel用于设置坐标轴文本。

plt.grid用于设置网格线。

# coding = utf-8

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-np.pi, np.pi, 0.1)
y = np.sin(x)

# 使用线形图画出y1=x的图像
plt.plot(x, y,
         linestyle='--',  # 线型
         linewidth=3,  # 线条宽度
         color='#FF0000',  # 颜色
         label=r'$y1 = sin(x)$'  # 图例
         )

# 设置标题能正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']

# 设置坐标轴能正常显示中文
plt.rcParams['axes.unicode_minus'] = False

#设置标题文本
plt.title('正弦曲线')

# 设置坐标轴文本
plt.xlabel('这是$X$轴')
plt.ylabel('这是$Y$轴')

# 设置坐标轴范围
plt.xlim(-np.pi, np.pi)
plt.ylim(-1.5, 1.5)

# 设置图例位置
plt.legend(loc='best')

# 设置网格线
plt.grid(b=True,  # 是否添加网格线(True/False)
     which=u'both',  # 使用大网格线还是小网格线('major'/'minor'/'both')
     axis=u'both'  # 在哪个轴添加网格线('both'/'x'/'y')
     )

# 显示图像
plt.show()

这里特别说明,为了使中文以及坐标轴上的负号能够正常显示,应添加如下代码: 

# 设置标题能正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']

# 设置坐标轴能正常显示负号
plt.rcParams['axes.unicode_minus'] = False

画出的图像如下图所示:

4. 多子图绘制

使用fig=plt.figure()创建画布,然后使用fig.add_subplot来画出每个子图。 

# coding = utf-8

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-np.pi, np.pi, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建画布
fig = plt.figure()

# 绘制第一个子图
fig1 = fig.add_subplot(2, 1, 1)
fig1.grid(True)
fig1.plot(x, y1)
fig1.set_title('Fig1')

# 绘制第二个子图
fig2 = fig.add_subplot(2, 1, 2)
fig2.grid(False)
fig2.plot(x, y2)
fig2.set_title('Fig2')

# 显示图像
plt.show()

画出的图像如下图所示:

 5. 图像的保存

使用plt.savefig来保存图像。

# 以上略
plt.savefig('画图.png', dpi=300)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值