Files
notes_estom/Python/matplotlab/gallery/pyplots/align_ylabels.md
2020-09-26 22:03:11 +08:00

86 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 对齐y标签
这里显示了两种方法,一种是使用对 [Figure.align_ylabels](https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.align_ylabels) 的简短调用,另一种是使用手动方式来对齐标签。
```python
import numpy as np
import matplotlib.pyplot as plt
def make_plot(axs):
box = dict(facecolor='yellow', pad=5, alpha=0.2)
# Fixing random state for reproducibility
np.random.seed(19680801)
ax1 = axs[0, 0]
ax1.plot(2000*np.random.rand(10))
ax1.set_title('ylabels not aligned')
ax1.set_ylabel('misaligned 1', bbox=box)
ax1.set_ylim(0, 2000)
ax3 = axs[1, 0]
ax3.set_ylabel('misaligned 2', bbox=box)
ax3.plot(np.random.rand(10))
ax2 = axs[0, 1]
ax2.set_title('ylabels aligned')
ax2.plot(2000*np.random.rand(10))
ax2.set_ylabel('aligned 1', bbox=box)
ax2.set_ylim(0, 2000)
ax4 = axs[1, 1]
ax4.plot(np.random.rand(10))
ax4.set_ylabel('aligned 2', bbox=box)
# Plot 1:
fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
# just align the last column of axes:
fig.align_ylabels(axs[:, 1])
plt.show()
```
![对齐y标签示例](https://matplotlib.org/_images/sphx_glr_align_ylabels_0011.png)
> 另见 Figure.align_ylabels and Figure.align_labels for a direct method of doing the same thing. Also Aligning Labels
或者我们可以使用y轴对象的set_label_coords方法手动在子图之间手动对齐轴标签。请注意这需要我们知道硬编码的良好偏移值。
```python
fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
labelx = -0.3 # axes coords
for j in range(2):
axs[j, 1].yaxis.set_label_coords(labelx, 0.5)
plt.show()
```
![对齐y标签示例2](https://matplotlib.org/_images/sphx_glr_align_ylabels_002.png)
## 参考
此示例中显示了以下函数,方法,类和模块的使用:
```python
import matplotlib
matplotlib.figure.Figure.align_ylabels
matplotlib.axis.Axis.set_label_coords
matplotlib.axes.Axes.plot
matplotlib.pyplot.plot
matplotlib.axes.Axes.set_title
matplotlib.axes.Axes.set_ylabel
matplotlib.axes.Axes.set_ylim
```
## 下载这个示例
- [下载python源码: align_ylabels.py](https://matplotlib.org/_downloads/align_ylabels.py)
- [下载Jupyter notebook: align_ylabels.ipynb](https://matplotlib.org/_downloads/align_ylabels.ipynb)