【问题标题】:How do I change the size of the plot and prevent overlapping in the y axis?如何更改绘图的大小并防止在 y 轴上重叠?
【发布时间】:2017-05-10 07:25:46
【问题描述】:

我绘制了一个带有大量水平条的水平条形图。 有什么办法可以防止 y 轴标题和条形图中的条形重叠。或者唯一的方法是增加图形的高度? 我试过使用: plt.figure(figsize=(13,14)) 但是当我尝试将 plt.show() 替换为 plt.figure( figsize=(13,14)).show()

我得到错误: 用户警告:matplotlib 当前使用的是非 GUI 后端,因此无法显示图形 "matplotlib 当前使用的是非 GUI 后端,"

import matplotlib.pyplot as plt
plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt

length=[477, 531, 568, 651, 1599, 1605, 1635, 1960, 2009, 2446, 2668, 3308, 3433, 3889, 4180, 4529, 5388, 6378, 7588, 7671, 7679, 8505, 8763, 8863, 8910, 9028, 9030, 10124, 10722, 10894, 11103, 11388, 12167, 12464, 14217, 14367, 14472, 16501, 18765, 19407, 19627, 20795, 21727, 21912, 22620, 24871, 25045, 25625, 25867, 27512, 30380, 30424, 31264, 32070, 32277, 33879, 35749, 35932, 37406, 37414, 40040, 42070, 42516, 42804, 44381, 46314, 48216, 48349, 50547, 50796, 53759, 54716, 65888, 81106, 86280, 104522, 179133, 189921]
y_pos = np.arange(len(length))
error = np.random.rand(len(length))
plt.barh(y_pos, length, xerr=error*2, align='center', alpha=0.3)
plt.yticks(y_pos, length)
plt.xlabel('Lengths')
plt.title('Comparison of different cuts')
plt.show()  

这是我指的图表:

【问题讨论】:

标签: python matplotlib plot graph


【解决方案1】:

您正在一个小空间中绘制大量条形图并标记每个刻度线。使这个清晰易读的最简单方法是增加情节的长度。使用plt.figure(figsize=(10,20)) 立即让我看懂了情节。

如果您想保持图形大小相同,则需要调整其他几个旋钮。首先,您可以使用height 参数控制每个水平条的高度。它默认为 0.8,因此请尝试使用较低的值。您还可以使用 fontsize 参数控制 yticks 的大小。调整这些参数将为您提供不重叠的条形/刻度,但会以分辨率为代价。要在使用plt.savefig 保存图形时提高分辨率,请使用dpi 参数将其设置为高于默认值。

【讨论】:

  • 如前所述,我尝试使用 plt.figure(figsize=(13,14)) 但不知何故对我不起作用。如果您编辑提到的代码并提供您获得的绘图图片以进行相关更改,那就太好了。提前谢谢我
  • 请提及帮助您使用上述代码的代码。
【解决方案2】:

y 轴上的标签数量非常多,因此很难将它们全部放入绘图中。增加绘图的大小会有所帮助,另一件可能有帮助的事情是减小 y-tick 标签的字体大小,如下所示:

ax = plt.gca()
for tick in ax.yaxis.get_major_ticks():
    tick.label.set_fontsize(6)

也许你也可以只给其他的,或者第三个 y-tick 标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2016-02-26
    相关资源
    最近更新 更多