我目前正在使用Python中的matplotlib来绘制一些数据,但是我希望图形的标题位于Y轴上,因为没有足够的空间来放置一个图形的标题和另一个图形的x轴标签。我知道我可以将hspace设置为一个更大的数字,但是我不想这样做,因为我计划将几个图表堆叠在一起,如果我调整hspace,那么图表将非常短,难以阅读。
的数据
这是我的代码
#EXAMPLE CODE
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure()
rect = fig.patch
rect.set_facecolor('#31312e')
x = [1,2,3,4,5,6,7,8]
y = [4,3,8,2,8,0,3,2]
z = [2,3,0,8,2,8,3,4]
ax1 = fig.add_subplot(2,1,1, axisbg='gray')
ax1.plot(x, y, 'c', linewidth=3.3)
ax1.set_title('title', color='c')
ax1.set_xlabel('xlabel')
ax1.set_ylabel('ylabel')
ax2 = fig.add_subplot(2,1,2, axisbg='gray')
ax2.plot(x, z, 'c', linewidth=3.3)
ax2.set_xlabel('xlabel')
ax2.set_ylabel('ylabel')
plt.show()
字符串
提前感谢
3条答案
按热度按时间ybzsozfc1#
试试这个:
字符串
9fkzdhlc2#
matplotlib图中的所有文本元素都有
get_position
和set_position
方法。如果你捕获坐标轴标签的坐标,并使用它们来设置标题的坐标,再加上一点偏移量,这是非常简单的。(编辑:坐标的单位是图形宽度和高度的分数。即(0,0)是左下角,(1,1)是右上角)字符串
的数据
8yoxcaq73#
我也在尝试同样的事情,我发现
ax.annotate
很有用。示例:
字符串
坐标设置为
axes fraction
,因此x位置参数(此处为-0.65)将文本左侧设置为Y轴,因为它是一个负值,并将Y位置(此处为0.5)设置为Y轴的中间。