使用Python的plt.plot()绘图,设置坐标轴位置和文本标记,添加图例,网格线,标题。
时间: 2024-12-22 14:16:08 浏览: 21
在Python中,使用`matplotlib`库的`pyplot`模块中的`plot()`函数绘制图形非常直观。下面是一个例子,展示如何设置坐标轴的位置,添加文本标记,图例,网格线以及添加标题:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制图形
plt.plot(x, y1, label='正弦波', color='red') # 红色实线表示y1
plt.plot(x, y2, label='余弦波', linestyle='--', color='blue') # 蓝色虚线表示y2
# 设置坐标轴位置
plt.xlim(0, 10) # x轴范围
plt.ylim(-1, 1) # y轴范围
# 添加文本标记
plt.text(5, 0.9, "最大值", fontsize=14, ha="center") # 在点(5, 0.9)处添加文本
# 添加图例
plt.legend(loc='upper right') # 图例位置在右上角
# 添加网格线
plt.grid(True, which='both') # 显示网格线,包括水平和垂直网格线
# 添加标题
plt.title('正弦和余弦波形示例')
# 显示图形
plt.show()
相关问题
plt.subplot(321) plt.plot(x,y,color='r') plt.subplot(324) plt.plot(x,y,color='b')画4个子图,要求画出 y=x y=
`plt.subplot(321)` 和 `plt.subplot(324)` 分别是在一个3行2列的网格中创建了第1个小图和第4个小图。`plt.plot(x, y, color='r')` 和 `plt.plot(x, y, color='b')` 将x和y坐标绘制成了红色线和蓝色线,这里假设x和y是两个数据序列。
第一个子图 (321) 的内容是一条红色线;第二个子图未指定,因为只有一个 `plot` 调用,但通常它会继续在同一子图上绘图,如果没有明确切换到其他子图。
如果你想在第四个子图(324)里也分别画出 `y = x` 和另一条直线(假设是 `y = 2x`),你需要先切换到那个子图,然后再添加新的线条。这里是完整的示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建x值
x = np.linspace(0, 10, 100)
# 第一个子图 - 红色线
plt.subplot(321)
plt.plot(x, x, color='r', label='y=x')
# 切换到第四个子图
plt.subplot(324)
# 绘制两条线,y = x 和 y = 2x
plt.plot(x, x, color='b', linestyle='-', label='y=x')
plt.plot(x, 2 * x, color='g', linestyle='--', label='y=2x')
# 添加标题、标签和图例
plt.title('Subplots with two lines')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
# 显示图形
plt.show()
mu = [14, 23, 22] sigma = [2, 3, 4] tips = ['design', 'build', 'test'] figureIndex = 0 fig = plt.figure(figureIndex, figsize=(10, 8)) color = ['r', 'g', 'b'] ax = fig.add_subplot(111) for i in range(3): x = np.linspace(mu[i] - 3*sigma[i], mu[i] + 3*sigma[i], 100) y_sig = np.exp(-(x - mu[i])**2/(2*sigma[i]**2))/(math.sqrt(2*math.pi)) plt.plot = (x, y_sig, color[i]) ax.legend(loc='best', frameon=False) ax.set_xlabel('# of days') ax.set_ylabel('probability') plt.grid(True) plt.show()
这是一段Python代码,用于绘制三个正态分布的概率密度函数曲线,并将它们绘制在同一个图上。其中mu和sigma分别表示三个正态分布的均值和标准差,tips是每个分布对应的标签,figureIndex是图像的编号,fig是绘图对象,ax是坐标轴对象。代码中使用了numpy和matplotlib库。具体解释如下:
```python
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
import math
# 定义三个正态分布的参数
mu = [14, 23, 22] # 均值
sigma = [2, 3, 4] # 标准差
tips = ['design', 'build', 'test'] # 标签
# 创建绘图对象
figureIndex = 0
fig = plt.figure(figureIndex, figsize=(10, 8))
color = ['r', 'g', 'b'] # 颜色
# 绘制三个正态分布的概率密度函数曲线
ax = fig.add_subplot(111)
for i in range(3):
x = np.linspace(mu[i] - 3*sigma[i], mu[i] + 3*sigma[i], 100) # 生成x轴数据
y_sig = np.exp(-(x - mu[i])**2/(2*sigma[i]**2))/(math.sqrt(2*math.pi)*sigma[i]) # 生成y轴数据
ax.plot(x, y_sig, color[i], label=tips[i]) # 绘制曲线并打上标签
# 设置图例、坐标轴标签和网格
ax.legend(loc='best', frameon=False)
ax.set_xlabel('# of days')
ax.set_ylabel('probability')
plt.grid(True)
# 显示图像
plt.show()
```
运行代码后,会生成一张包含三个正态分布曲线的图像。其中,x轴表示随机变量的取值,y轴表示对应取值的概率密度。每个曲线的颜色不同,标签也不同。这个示例可以帮助我们更好地理解正态分布及其参数对随机变量分布的影响。
阅读全文