下面的屏幕截图显示了我的x轴。
我添加了一些标签,并将它们旋转了90度,以便更好地阅读它们。但是,pyplot截断了底部,因此我无法完全阅读标签。如何扩展底部边距以查看完整的标签?
khbbv19g1#
fig.savefig('name.png', bbox_inches='tight')
最适合我,因为与
fig.tight_layout()
dy2hfwbg2#
子图调整对我来说不起作用,因为整个图形将只是调整大小与标签仍然超出界限。我发现的一个解决方法是使y轴始终与最大或最小y值保持一定的余量:
x1,x2,y1,y2 = plt.axis() plt.axis((x1,x2,y1 - 100 ,y2 + 100))
xeufq47z3#
fig, ax = plt.subplots(tight_layout=True)
rggaifut4#
这是相当复杂的,但它给出了一个通用的简洁的解决方案。
import numpy as np value1 = 3 xvalues = [0, 1, 2, 3, 4] line1 = [2.0, 3.0, 2.0, 5.0, 4.0] stdev1 = [0.1, 0.2, 0.1, 0.4, 0.3] line2 = [1.7, 3.1, 2.5, 4.8, 4.2] stdev2 = [0.12, 0.18, 0.12, 0.3, 0.35] max_times = [max(line1+stdev1),max(line2+stdev2)] min_times = [min(line1+stdev1),min(line2+stdev2)] font_size = 25 max_total = max(max_times) min_total = min(min_times) max_minus_min = max_total - min_total step_size = max_minus_min/10 head_space = (step_size*3) plt.figure(figsize=(15, 15)) plt.errorbar(xvalues, line1, yerr=stdev1, fmt='', color='b') plt.errorbar(xvalues, line2, yerr=stdev2, fmt='', color='r') plt.xlabel("xvalues", fontsize=font_size) plt.ylabel("lines 1 and 2 Test "+str(value1), fontsize=font_size) plt.title("Let's leave space for the legend Experiment"+ str(value1), fontsize=font_size) plt.legend(("Line1", "Line2"), loc="upper left", fontsize=font_size) plt.tick_params(labelsize=font_size) plt.yticks(np.arange(min_total, max_total+head_space, step=step_size) ) plt.grid() plt.tight_layout()
结果:
5q4ezhmt5#
两种追溯方式:
fig, ax = plt.subplots() # ... fig.tight_layout()
或者
fig.subplots_adjust(bottom=0.2) # or whatever
下面是一个subplots_adjust示例:http://matplotlib.org/examples/pylab_examples/subplots_adjust.html(but我更喜欢tight_layout)
subplots_adjust
tight_layout
332nm8kg6#
一个对我有效的快速单行解决方案是直接使用pyplot的auto tight_layout方法,该方法在Matplotlib v1.1以后的版本中可用:
plt.tight_layout()
这可以在显示图(plt.show())* 之前 * 立即调用,但在轴上进行操作(例如ticklabel旋转等)* 之后 * 调用。这种方便的方法避免了操纵子区的单个图形。其中plt是标准pyplot,来自:import matplotlib.pyplot as plt个
plt.show()
import matplotlib.pyplot as plt
6条答案
按热度按时间khbbv19g1#
最适合我,因为与
dy2hfwbg2#
子图调整对我来说不起作用,因为整个图形将只是调整大小与标签仍然超出界限。
我发现的一个解决方法是使y轴始终与最大或最小y值保持一定的余量:
xeufq47z3#
rggaifut4#
这是相当复杂的,但它给出了一个通用的简洁的解决方案。
结果:
5q4ezhmt5#
两种追溯方式:
或者
下面是一个
subplots_adjust
示例:http://matplotlib.org/examples/pylab_examples/subplots_adjust.html(but我更喜欢
tight_layout
)332nm8kg6#
一个对我有效的快速单行解决方案是直接使用pyplot的auto tight_layout方法,该方法在Matplotlib v1.1以后的版本中可用:
这可以在显示图(
plt.show()
)* 之前 * 立即调用,但在轴上进行操作(例如ticklabel旋转等)* 之后 * 调用。这种方便的方法避免了操纵子区的单个图形。
其中plt是标准pyplot,来自:
import matplotlib.pyplot as plt
个