Python, несколько графиков на одной странице PDF - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть четыре хороших графика, которые я могу сохранить в виде файла PDF, но на 4 страницах вместо двух. У меня есть 2 диаграммы с финансовыми данными компании и еще 2 диаграммы с ценами акций.Я хотел бы иметь одну страницу в формате PDF с финансовой датой одной компании и ценой на акции.Конечно, на второй странице мне нужен тот же результат, но для следующей компании.

Ниже мой код

with PdfPages('multipage_pdf.pdf') as pdf:

    fig1, ax = plt.subplots()
    index = np.arange(n_groups)
    bar_width = 0.35
    opacity = 0.8

    rects1 = plt.bar(index, z, bar_width,
                 alpha=opacity,
                 color='b',
                 label='Zysk_(strata)_netto')

    rects2 = plt.bar(index + bar_width, v, bar_width,
                 alpha=opacity,
                 color='g',
                 label='Zysk_(strata)_działal_oper')

    rects3 = plt.bar(index + bar_width + bar_width, b, bar_width,
                 alpha=opacity,
                 color='y',
                 label='EBITDA')

    plt.xlabel('Kwartaly')
    plt.ylabel('PLN')
    plt.title(companys_to_chart[0])
    plt.xticks(index + bar_width, x)
    plt.legend()
    ax.grid(True)

    plt.tight_layout()
    pdf.savefig()
    plt.close()

    x = company['Date']
    y = company['Close']

    x1 = WIG['Date']
    y1 = WIG['Close']

    fig2, ax = plt.subplots()
    ax.plot(x,y,label='Price')
    ax.set_ylabel("PLN")
    ax.set_xlabel("Date")


    ax2 = ax.twinx()
    ax2.plot(x1,y1, 'y-', label='WIG')

    myFmt = DateFormatter("%d-%m-%y")
    ax.xaxis.set_major_formatter(myFmt)

    fig2.autofmt_xdate()

    plt.ylabel('Points',size=10)
    plt.title(name_of_company)
    ax.grid(True)

    fig2.legend(bbox_to_anchor=(0.85, 0.35))

    pdf.savefig()
    plt.close()

##############################################################################
    x_1 = company_2['Kwartal']
    z_1 = company_2['Zysk_(strata)_netto']
    v_1 = company_2['Zysk_(strata)_działal_oper']
    b_1 = company_2['EBITDA']

    fig, ax = plt.subplots()
    index = np.arange(n_groups)
    bar_width = 0.35
    opacity = 0.8

    rects1 = plt.bar(index, z_1, bar_width,
                 alpha=opacity,
                 color='b',
                 label='Zysk_(strata)_netto')

    rects2 = plt.bar(index + bar_width, v_1, bar_width,
                 alpha=opacity,
                 color='g',
                 label='Zysk_(strata)_działal_oper')

    rects3 = plt.bar(index + bar_width + bar_width, b_1, bar_width,
                 alpha=opacity,
                 color='y',
                 label='EBITDA')

    plt.xlabel('Kwartaly')
    plt.ylabel('PLN')
    plt.title(companys_to_chart[1])
    plt.xticks(index + bar_width, x)
    plt.legend()
    ax.grid(True)

    plt.tight_layout()

    pdf.savefig()
    plt.close()

    x = company['Date']
    y = company['Close']

    x1 = WIG['Date']
    y1 = WIG['Close']

    fig, ax = plt.subplots()
    ax.plot(x,y,label='Price')
    ax.set_ylabel("PLN")
    ax.set_xlabel("Date")


    ax2 = ax.twinx()
    ax2.plot(x1,y1, 'y-', label='WIG')

    myFmt = DateFormatter("%d-%m-%y")
    ax.xaxis.set_major_formatter(myFmt)

    fig.autofmt_xdate()

    plt.ylabel('Points',size=10)
    plt.title(name_of_company_1)
    ax.grid(True)

    fig.legend(bbox_to_anchor=(0.85, 0.35))

    pdf.savefig()
    plt.close()

В конце у меня есть 4 страницы вместо 2, и яищу результат как ниже в PDF.enter image description here

Я надеюсь, что мой вопрос ясен :) Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...