当我使用以下代码绘制图形和图例时,
import matplotlib.pyplot as plt
# Create sample data
x = [1, 2, 3, 4]
y1 = [1, 2, 3, 4]
y2 = [4, 3, 2, 1]
y3 = [2, 3, 2, 1]
# Create the main figure
fig, ax = plt.subplots()
# Plot the lines
line1, = ax.plot(x, y1, label='$\\mathdefault{H_{12}\\ 5}$')
line2, = ax.plot(x, y2, label='$\\mathdefault{H_{12}\\ 5}$')
line3, = ax.plot(x, y3, label='$\\mathdefault{H_{12}\\ 5}$')
line3, = ax.plot(x, y3, label='$\\mathdefault{H_{12}\\ 5}$')
line3, = ax.plot(x, y3, label='$\\mathdefault{H_{12}\\ 5}$')
line3, = ax.plot(x, y3, label='$\\mathdefault{H_{12}\\ 5}$')
line3, = ax.plot(x, y3, label='$\\mathdefault{H_{12}\\ 5}$')
# Create a legend for the lines below the figure
fig.legend(loc='lower center', bbox_to_anchor=(0.5, 0), ncol=1, fontsize=8, labelspacing=0.5)
# Set labels and title
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_title('Multiple Lines with Legend Below')
# Adjust layout for better appearance
plt.tight_layout()
plt.subplots_adjust(bottom=0.4)
plt.show()
我得到了不同数量的图例标签间距之间的行的图例在弹出窗口与保存的数字。在屏幕截图弹出窗口中的数字在spyder自动后端(左)有更多的间距比图保存为png(但也与其他文件格式)使用fig.savefig(filepath,dpi=600, transparent=False,bbox_inches='tight')
(右)x1c 0d1x
我覆盖的数字和字体(大小)是完全相同的。我认为,这个问题只显示在图例标签时有下标。似乎plt.show()
确实产生额外的空间为下标,而图。savefig没有。这是一个错误,或者我/我们如何修复它。有人有任何想法来解决这个问题或工作?有什么方法可以让plt.show()
忽略有下标的事实吗?
根据@Jody Klimak的评论,我的tex相关rcParams是:
'text.antialiased': True,'text.color': 'black','text.hinting': 'force_autohint','text.hinting_factor': 8,'text.kerning_factor': 0,'text.latex.preamble': '\\usepackage{amsmath}\\usepackage{amssymb} ''\\usepackage{sfmath}','text.usetex': False,'mathtext.bf': 'sans:bold','mathtext.cal': 'cursive','mathtext.default': 'it','mathtext.fallback': 'cm','mathtext.fontset': 'dejavusans','mathtext.it': 'sans:italic','mathtext.rm': 'sans','mathtext.sf': 'sans','mathtext.tt': 'monospace',
1条答案
按热度按时间kse8i1jr1#
这不是一个真正的答案,但是这在新的Matplotlib中更容易通过'外部下中心'和
layout='constrained'
来实现。不需要手动调整子图间距。