使用Python在同一张图中创建两个子图,分别画出sinx和cosx在[-3.14,3.14]上的函数图像。设置线条宽度为2.5.(提示:.linspace(),plt.subplot(),.plot(,linewidth=…)
时间: 2024-03-02 12:49:03 浏览: 292
好的,下面是 Python 代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成x轴数据
x = np.linspace(-np.pi, np.pi, 300)
# 生成sinx和cosx的y轴数据
y1 = np.sin(x)
y2 = np.cos(x)
# 创建2x1的子图,第1个子图
plt.subplot(2, 1, 1)
plt.plot(x, y1, linewidth=2.5)
plt.title("sin(x)")
# 创建2x1的子图,第2个子图
plt.subplot(2, 1, 2)
plt.plot(x, y2, linewidth=2.5)
plt.title("cos(x)")
# 显示图像
plt.show()
```
这段代码使用 `numpy` 生成 `x` 轴数据,再分别生成 `sin(x)` 和 `cos(x)` 的 `y` 轴数据。然后使用 `plt.subplot()` 创建 2x1 的子图,分别画出 `sin(x)` 和 `cos(x)` 的函数图像,并设置线条宽度为 2.5。最后调用 `plt.show()` 显示图像。
相关问题
Python在同一张图中叠加海温陆地风怎么画
你可以使用Python中的Matplotlib和Cartopy库来画同一张图上的海温、陆地和风场。下面是一个简单的示例代码:
```
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import numpy as np
# 创建画布
fig = plt.figure(figsize=(8, 6))
# 在画布上添加地图
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
ax.set_extent([70, 140, 0, 60], crs=ccrs.PlateCarree())
ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
ax.add_feature(cfeature.LAND.with_scale('50m'))
# 绘制海温数据
temps = np.random.randn(30, 30)
im = ax.contourf(temps, cmap='coolwarm')
# 绘制风场数据
x, y = np.meshgrid(np.arange(0, 30), np.arange(0, 30))
u, v = np.random.randn(30, 30), np.random.randn(30, 30)
q = ax.quiver(x, y, u, v)
# 显示图像
plt.show()
```
在这个示例代码中,我们首先创建了一个8x6英寸大小的画布,然后在上面添加了一个投影为PlateCarree的地图,范围为[70, 140, 0, 60]。接着我们随机生成了30x30的海温数据和风场数据,并使用Matplotlib的contourf和quiver函数绘制了它们。最后,我们使用show函数将图像显示出来。
注意,这里只是一个简单的示例代码,实际应用中还需要根据具体的数据和需求进行调整。
python在同一张图中展示数据的直方图和核密度图(提示:secondary_y)
在Python中,可以使用matplotlib库中的`subplots`函数在同一幅图中同时显示直方图和核密度估计图。`secondary_y`参数特别适用于在这种场景下,它允许你在共享x轴的基础上添加第二个y轴,用于展示不同类型的数据。
例如,你可以这样做:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一些数据
data1 = np.random.randn(1000)
data2 = np.random.randn(1000) + 5
fig, ax1 = plt.subplots()
# 绘制主y轴的直方图
ax1.hist(data1, bins='auto', label='Data 1', color='blue')
ax1.set_ylabel('Frequency', color='blue')
# 添加一个新的y轴(secondary_y)
ax2 = ax1.twinx()
n, bins, patches = ax2.hist(data2, bins='auto', density=True, alpha=0.7,
label='Kernel Density Estimate', color='red')
ax2.set_ylabel('Density', color='red')
ax2.yaxis.grid(True)
# 设置标题和图例
fig.suptitle('Histogram and Kernel Density Estimation')
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')
plt.show()
```
在这个例子中,`ax1`负责直方图,而`ax2`则展示了基于`data2`的核密度估计图,其数据量纲通过调整为概率密度(density=True)来适应新的y轴。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)