Невозможно изменить размер графика matplotlib в контейнере Gtk scrolledwindow - PullRequest
0 голосов
/ 12 сентября 2018

Используя бэкэнд gtk3cairo из matplotlib и этот пример , мне удалось нарисовать график на графическом интерфейсе, построенном с использованием PyGObject.Теперь я пытаюсь изменить размер графика так, чтобы он правильно помещался в прокручиваемом окне, в котором он находится.Ниже приведен мой код:

def set_charts(self):
    #Calculate stuff to plot

    fig, ax = plt.subplots(figsize=(5,5),dpi = 50)
    fig.set_size_inches(5,5, forward=True)
    index = [i for i in range(n_records)]
    bar_width = 0.35

    opacity = 0.6
    error_config = {'ecolor': '0.3'}

    rects1 = ax.bar(index, pr_count, bar_width,
                alpha=opacity, color='g', error_kw=error_config,
                label='Present')

    rects2 = ax.bar([i + bar_width for i in index], ab_count, bar_width,
                alpha=opacity, color='b', error_kw=error_config,
                label='Absent')

    ax.set_xlabel('Date', fontsize = 10)
    ax.set_ylabel('Attendance', fontsize = 10)
    ax.set_title('Summary of Attendance', fontsize = 12)
    ax.set_xticks([i + bar_width / 2 for i in index])

    ax.set_xticklabels(xticklabels, rotation=45, fontsize = 7)
    ax.legend()
    ax.plot()

    canvas = FigureCanvas(fig)
    canvas.set_size_request(5,5)
    self.scrolledwin.add_with_viewport(canvas)
    self.scrolledwin.show_all()

Я пробовал canvas.set_size_request(5,5), fig, ax = plt.subplots(figsize=(5,5),dpi = 50) и fig.set_size_inches(5,5, forward=True) (индивидуально), но ни один из них не влияет на сюжет.Аргумент dpi для функции plt.subplots() изменяет размер графика, но также влияет на шрифты.

Может кто-нибудь показать мне, как управлять размером сюжета?

...