python pyplot 将两条曲线绘制在一个图里
时间: 2023-05-04 11:04:06 浏览: 320
使用Python中的matplotlib库,可以方便地绘制多条曲线在同一个图中。具体步骤如下:
1.导入matplotlib和numpy库。
```python
import matplotlib.pyplot as plt
import numpy as np
```
2.准备数据。给定两条曲线的x值和y值。
```python
x1 = np.array([1, 2, 3, 4, 5])
y1 = np.array([2, 4, 6, 8, 10])
x2 = np.array([1, 3, 5, 7, 9])
y2 = np.array([1, 4, 9, 16, 25])
```
3.绘制图像。
```python
plt.plot(x1, y1, color='blue', label='curve 1') #绘制第一条曲线
plt.plot(x2, y2, color='red', label='curve 2') #绘制第二条曲线
plt.legend() #添加图例
plt.show() #显示图像
```
其中,plt.plot()函数接受x值和y值作为参数,并使用color参数指定曲线颜色,使用label参数指定曲线的标签。plt.legend()函数用于创建图例,展示每条曲线所代表的含义。plt.show()函数用于在屏幕上显示绘制好的图像。
最终得到的图像中将展示两条曲线,分别为蓝色和红色,显示每条曲线的含义。
相关问题
在Python中如何将几条曲线绘制在一个figure中
在Python中,可以使用Matplotlib库来将几条曲线绘制在一个figure中。具体步骤如下:
1. 导入Matplotlib库:
```
import matplotlib.pyplot as plt
```
2. 创建一个figure对象:
```
fig = plt.figure()
```
3. 在figure对象中添加子图:
```
ax = fig.add_subplot(111)
```
其中,111表示将整个figure分成1行1列的1个子图,ax表示子图对象。
4. 绘制曲线:
```
x = [1, 2, 3, 4, 5]
y1 = [1, 3, 2, 4, 5]
y2 = [2, 4, 1, 3, 6]
ax.plot(x, y1)
ax.plot(x, y2)
```
其中,x表示横坐标的数据,y1和y2分别表示两条曲线的纵坐标数据,ax.plot()函数用于绘制曲线。
5. 显示图像:
```
plt.show()
```
完整的代码如下:
```
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
x = [1, 2, 3, 4, 5]
y1 = [1, 3, 2, 4, 5]
y2 = [2, 4, 1, 3, 6]
ax.plot(x, y1)
ax.plot(x, y2)
plt.show()
```
运行该代码可以得到两条曲线分别绘制在同一个figure中的效果图。
使用python将excel中的矩阵做SG平滑处理,并将多条曲线图绘制到一个图里
以下是使用Python实现将Excel中的矩阵做SG平滑处理,并将多条曲线图绘制到一个图里的示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter
# 读取Excel数据
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 将数据转换为矩阵
data = np.array(df)
# 设置SG平滑的参数
window_size = 5
poly_order = 3
# 对每一列数据进行SG平滑处理
for i in range(data.shape[1]):
data[:, i] = savgol_filter(data[:, i], window_size, poly_order)
# 绘制多条曲线图
fig, ax = plt.subplots()
for i in range(data.shape[1]):
ax.plot(data[:, i], label='Curve {}'.format(i+1))
ax.legend()
plt.show()
```
其中,示例数据存储在名为“data.xlsx”的Excel文件的第一个工作表中,其内容类似于以下示例:
| | A | B | C |
|---|---|---|---|
| 1 | 1 | 2 | 3 |
| 2 | 2 | 4 | 6 |
| 3 | 3 | 6 | 9 |
| 4 | 4 | 8 | 12 |
| 5 | 5 | 10 | 15 |
在运行代码后,程序将读取Excel中的数据,并将其转换为NumPy数组。然后,程序使用SciPy库中的`savgol_filter`函数对每一列数据进行SG平滑处理。最后,程序使用Matplotlib库绘制多条曲线图,并在图例中标识每条曲线的名称。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)