matplotlib.pyplot基本用法

这篇博客介绍了matplotlib.pyplot的基本用法,包括画函数图像、Figure的使用、坐标轴操作、图例标注、散点图、柱状图、等高线图、3D图像绘制、在同一figure中分区画图、subplot的多种布局方式、图中图以及动态图的创建。内容全面,适合初学者掌握matplotlib.pyplot的各种绘图技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用matplotlib.pyplot法

基本用法

画简单的函数图像:

import matplotlib.pyplot as plt
import numpy as np 
x=np.linspace(-1,1,50)
y=2*x**2+1
plt.plot(x,y)
plt.show()

图像效果:

Figure的使用:

figure就是不同的图片窗口,一个figure管它下面的一段代码

import matplotlib.pyplot as plt
import numpy as np 

x=np.linspace(-3,3,50)
y1=2*x**2+1
y2=x**3-1

plt.figure()   # 先定开头,后面的内容都是和这个figure有关
plt.plot(x,y1)

plt.figure(num=3,figsize=(8,5))  
# 第二个figure,就是第二个图片窗口,可以通过num=设置编号数字,size设置长宽大小
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=2.0,linestyle='--')  # 一个figure可以同时把两个函数画进来,且可以设置颜色粗细样式

plt.show()

图片效果:

坐标轴操作

坐标轴设置1:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 100)
y1 = 2 * x ** 2 + 1
y2 = x ** 3 - 1

plt.figure(num=3, figsize=(8, 5))
plt.plot(x, y2)
plt.plot(
    x, y1, color="red", linewidth=2.0, linestyle="--"
)  # 一个figure可以同时把两个函数画进来,且可以设置颜色粗细样式

plt.xlim((-3, 4))  # x轴显示数据范围
plt.ylim((-3, 5))  # y轴显示数据范围

plt.xlabel("I am X")  # x轴名称
plt.ylabel("I am Y")  # y轴名称

# 坐标轴标尺转换
new_ticks = np.linspace(-1, 2, 5)  # 从-1到2,平均取5个刻度[-1.   -0.25  0.5   1.25  2.  ]
plt.xticks(new_ticks)

plt.yticks(
    [-3, -2, 0, 0.3, 1],
    ["bad", "normal", r"$good\ \alpha$", r"$well\ done$", "excellent"],
)
# 对应替代数字标尺,并且会扩大显示范围
# 正则写法--变斜体好看一点,反斜杠转译,直接写空格无法识别,alpha可转译,

plt.show()

 图片效果:

坐标轴(图片框架)操作:

# gca='get current axis'
ax=plt.gca()
# 把坐标轴(脊梁)拿出来
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)

效果:(top和right框架被none了)

还可以移动x和y轴:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 100)
y1 = 2 * x ** 2 + 1
y2 = x ** 3 - 1

plt.figure(num=3, figsize=(8, 5))
plt.plot(x, y2)
plt.plot(
    x, y1, color="red", linewidth=2.0, linestyle="--"
)  # 一个figure可以同时把两个函数画进来,且可以设置颜色粗细样式

plt.xlim((-3, 4))  # x轴显示数据范围
plt.ylim((-3, 5))  # y轴显示数据范围

plt.xlabel("I am X")  # x轴名称
plt.ylabel("I am Y")  # y轴名称

# 坐标轴标尺转换
new_ticks = np.linspace(-1, 2, 5)  # 从-1到2,平均取5个刻度[-1.   -0.25  0.5   1.25  2.  ]
plt.xticks(new_ticks)

plt.yticks(
    [-3, -2, 0, 0.3, 1],
    ["bad", "normal", r"$good\ \alpha$", r"$well\ done$", "excellent"],
)
# 对应替代数字标尺,并且会扩大显示范围
# 正则写法--变斜体好看一点,反斜杠转译,直接写空格无法识别,alpha可转译,

# gca='get current axis'
ax=plt.gca()
# 把坐标轴(脊梁)拿出来
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.xaxis.set_ticks_position('bottom') # 让bottom轴可以动起来,把x轴设置成bottom轴了
ax.yaxis.set_ticks_posit
### matplotlib.pyplot 库无法使用的解决方案 在解决 `matplotlib.pyplot` 库无法使用的问题时,需要从多个角度进行排查和处理。以下是可能的原因及对应的解决方案: #### 1. 环境配置问题 如果在 IDE(如 IntelliJ IDEA 或 PyCharm)中使用 `matplotlib.pyplot` 导入报错,可能是由于环境配置不正确。例如,缺少必要的依赖库或环境变量未正确设置[^1]。 - 确保已安装 `matplotlib` 及其依赖库: ```bash pip install matplotlib ``` - 如果使用的是虚拟环境,请确保激活正确的虚拟环境后再安装 `matplotlib`。 #### 2. Qt 平台插件问题 在某些情况下,`matplotlib` 使用了 Qt 后端绘图,而系统中可能缺少必要的 Qt 插件。这会导致类似以下错误:`This application failed to start because it could not find or load the Qt platform plugin "windows"`[^5]。 - 解决方法是切换到非 Qt 的后端,例如 TkAgg: ```python import matplotlib matplotlib.use('TkAgg') # 切换到 TkAgg 后端 import matplotlib.pyplot as plt ``` #### 3. 中文字体支持问题 当使用 `matplotlib.pyplot` 绘制包含中文的图表时,可能会出现字体显示异常的问题[^3]。这是因为默认字体不支持中文字符。 - 解决方案是为 `matplotlib` 设置支持中文的字体: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体 plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 ``` #### 4. 脚本运行方式问题 在某些 IDE 中运行脚本时,可能会因为后端配置问题导致绘图功能失效。例如,在 IntelliJ IDEA 中直接运行脚本可能导致 `matplotlib.pyplot` 报错。 - 解决方法是确保脚本以图形界面支持的方式运行,或者将绘图代码封装到函数中并显式调用。 #### 5. 条形图绘制问题 如果尝试使用 `matplotlib.pyplot.bar` 函数绘制条形图时出现问题[^4],可以检查输入数据格式是否正确,并确保调用了 `plt.show()` 显示图形。 ```python import matplotlib.pyplot as plt # 数据 categories = ['A', 'B', 'C', 'D'] values = [10, 20, 15, 25] # 绘制条形图 plt.bar(categories, values) plt.xlabel('类别') plt.ylabel('值') plt.title('条形图示例') plt.show() ``` ### 示例代码 以下是一个完整的示例,展示了如何正确使用 `matplotlib.pyplot` 并解决常见问题: ```python import matplotlib matplotlib.use('TkAgg') # 切换到 TkAgg 后端 import matplotlib.pyplot as plt import numpy as np # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 数据 x = np.linspace(0, 2 * np.pi, 200) y = np.sin(x) # 绘制图形 fig, ax = plt.subplots() ax.plot(x, y) ax.set_title("正弦曲线", fontsize=24) ax.set_xlabel("x轴", fontsize=14) ax.set_ylabel("y轴", fontsize=14) # 显示图形 plt.show() ``` ### 注意事项 - 确保系统的字体库中包含所指定的中文字体(如 SimHei),否则需要手动安装。 - 如果问题仍未解决,可以尝试更新 `matplotlib` 和相关依赖库到最新版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值