matplotlib加副坐标轴
时间: 2023-11-08 13:01:42 浏览: 87
matplotlib可以通过使用twinx()方法来添加副坐标轴。首先,创建一个主坐标轴ax1,并使用plot()方法绘制主要数据。然后,使用twinx()方法创建一个与ax1共享x轴的次坐标轴ax2,并使用plot()方法绘制次要数据。最后,可以使用set_xlabel()和set_ylabel()方法分别设置x轴和y轴的标签。这样就可以在同一图表上绘制两个y轴的数据了。
代码示例:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y1 = 0.05 * x**2
y2 = 2 * x
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(x, y1, 'r-')
ax2.plot(x, y2, 'b-.')
ax1.set_xlabel('横坐标')
ax1.set_ylabel('y1纵坐标', color='r')
ax2.set_ylabel('y2纵坐标', color='b')
plt.show()
相关问题
python matplotlib画图坐标轴的子体类型代码
以下是Python Matplotlib中常见的坐标轴子类型代码:
1. 主坐标轴:
```
ax = plt.axes()
```
2. 次坐标轴:
```
ax2 = ax.twinx() # 添加一个纵轴
ax3 = ax.twiny() # 添加一个横轴
```
3. 对数坐标轴:
```
plt.xscale("log") # 设置x轴为对数坐标轴
plt.yscale("log") # 设置y轴为对数坐标轴
```
4. 离散坐标轴:
```
plt.xticks(ticks=[1,2,3], labels=["A","B","C"]) # 设置x轴的刻度和标签
plt.yticks(ticks=[1,2,3], labels=["A","B","C"]) # 设置y轴的刻度和标签
```
5. 时间坐标轴:
```
import matplotlib.dates as mdates
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S')) # 设置x轴的时间格式
plt.gca().xaxis.set_major_locator(mdates.DayLocator()) # 设置x轴的主刻度为每天
plt.gca().xaxis.set_minor_locator(mdates.HourLocator(byhour=[0,6,12,18])) # 设置x轴的副刻度为每6小时
```
matplotlib调整副纵坐标的字体大小
在matplotlib中,如果你想要调整副纵坐标(通常是第二轴,如log轴或时间轴)的字体大小,你可以通过`set_fontsize()`方法来设置。这个方法需要传入一个数字,表示字体的点数(size in points)。
首先,你需要获取到你想调整的轴对象,这通常是在创建图形时通过`twinx()`或`twiny()`函数添加的。例如:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.log(x)
# 创建主图和副轴
fig, ax1 = plt.subplots()
ax2 = ax1.twinx() # 创建副轴
# 在主轴上绘制一条线并设置主坐标轴字体大小
ax1.plot(x, y1)
ax1.set_xlabel('X-axis', fontsize=14) # 设置主轴标签字体大小
# 在副轴上绘制另一条线并调整副坐标字体大小
ax2.plot(x, y2)
ax2.set_ylabel('Y-axis (log scale)', fontsize=12) # 设置副轴标签字体大小
ax2.yaxis.set_fontsize(10) # 调整副轴字体大小
plt.show()
```
在这个例子中,`ax2.yaxis.set_fontsize(10)`行设置了副纵坐标的字体大小为10点。你可以根据需要调整这个数值。
阅读全文