【问题标题】:X axes labels always get cut off for matplotlib subplots on a web page对于网页上的 matplotlib 子图,X 轴标签总是被截断
【发布时间】:2017-05-03 17:10:05
【问题描述】:

我已经使用 Flask 在网页上绘制了从 pandas 数据框生成的 matplotlib 子图。这是相关代码。

import matplotlib.pyplot as plt
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from io import BytesIO,StringIO
plt.style.use('ggplot')
plt.rcParams['xtick.color']='k'
plt.rcParams['xtick.labelsize']='x-large'
travel_df_new.unstack(level=0).plot(kind='bar', subplots=True, legend=False)
buff = BytesIO()
plt.savefig(buff, format='png', dpi=100)
buff.seek(0)

即使我设置了 plt.rcParams['xtick.labelsize']='x-small',x 轴标签总是倾向于被切断。

另外,还没有找到在 rcParams 中旋转 xtick 标签的方法。

我的图片没有覆盖整个网页,所以不确定是否需要旋转。

【问题讨论】:

  • 您在保存图之前尝试过plt.tight_layout() 吗?也许这会解决裁剪标签的问题。
  • 这确实有效。但这会减少最上面图表的 y 轴比例。有什么方法可以保持相同的比例?
  • 它只改变了最上面的图吗?你能发布一张更新的图片吗?
  • 它确实修复了裁剪标签,但对于最上面的图形,Y 轴比例从 0-400 更改为 0-250。 average_spending,CA 图
  • 您可以使用ylim(0,400) 手动设置最上面图表的限制。也许这会起作用。

标签: python matplotlib


【解决方案1】:

您可以尝试plt.tight_layout() 来修复裁剪的 x 标签。通常,您可以使用ylim(0, 400) 设置绘图的 y 限制。如果你有子图而不是图,我假设这里就是这种情况,也许是set_ylim(0,400)。也许您会在这里找到更多帮助:How to set axes limits in each subplot

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-11
    • 2019-12-19
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2020-10-15
    相关资源
    最近更新 更多