【问题标题】:python-ggplot in IPython cutting off legend in figuresIPython中的python-ggplot切断了数字中的图例
【发布时间】:2023-12-22 11:10:01
【问题描述】:

我正在使用 python-ggplot 进行绘图,我知道它仍在开发中。然而,当尝试绘制部分图例时,在 Ipython 笔记本中相当令人沮丧。我还尝试了 %qtconsole 并得到了相同的切碎图像,所以我认为它是切碎的。如何增加画布大小或我需要做的任何事情?

print inf_df[:10]

ggplot(aes(x='val', colour='lang', fill=True, alpha = 0.3), data=inf_df) + geom_density() + labs("Score", "Frequency") + \
scale_x_continuous(limits=(0,0.01)) + ggtitle('\n Swahili - blue, French - yellow, English - black')

      qid lang         metric       val
1   Q1410   fr  referencerate  0.000453
6   Q1410   en  referencerate  0.002962
11  Q1410   sw  referencerate  0.000000
16   Q805   fr  referencerate  0.001971
21   Q805   en  referencerate  0.005639
26   Q805   sw  referencerate  0.000000
31   Q804   fr  referencerate  0.001217
36   Q804   en  referencerate  0.001908
41   Q804   sw  referencerate  0.000000
46  Q3769   fr  referencerate  0.001159

【问题讨论】:

    标签: matplotlib ipython ipython-notebook python-ggplot


    【解决方案1】:

    IIRC,如果您安装了最新的 matplolib 开发版本(布局紧凑的问题),此问题已得到解决。您可以尝试使用InlineBackend.rc 配置的值(使用%config 魔法),这可能会帮助您停用紧凑的布局。

    【讨论】:

    • 当我致电 print p.draw().get_tight_layout() 时,我收到 False。所以我认为这意味着tight_layout 没有被使用。
    • 如果我使用长的 ggtitle,Canvas 会伸展到足够大,所以这是我现在的 janky 解决方法。 ggtitle(ametric + '\n\n [lots of spaces go here]')
    • tight_layout 将由内联后端的显示挂钩触发,因此您可能无法以编程方式检测到它已被使用。请参阅core/pylabtools.py:112 尝试删除bbox_inches='tight' 看看是否有影响。
    • 这是问题所在:github.com/yhat/ggplot/issues/33。该问题已在最新发布的版本中得到修复。