Matplotlib PDF Вывод - PullRequest
       3

Matplotlib PDF Вывод

0 голосов
/ 06 июля 2018

Я новичок в matplotlib и не хочу использовать графику в латексе. Существует визуальный вывод в виде графики, но:

Почему нет вывода PDF?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os #to remove a file
import datetime 
from matplotlib.backends.backend_pdf import PdfPages
#######################

Val1 = [1,2,3,4,5,6,7,8,9,9,5,5] # in kWh
Val2 = [159,77,1.716246,2,4,73,128,289,372,347,354,302] #in m³


index = ['Apr', 'Mai', 'Jun', 'Jul','Aug','Sep','Okt','Nov','Dez','Jan', 'Feb', 'Mrz']
df = pd.DataFrame({'Val1': Val1,'Val2': Val2}, index=index)



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

plt.rc('text', usetex=True)
params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = 'Liberation'
plt.rcParams.update(params)
plt.figure(figsize=(8, 6))
plt.rcParams.update({'font.size': 12}) 
ax = df[['Val1','Val2']].plot.bar(color=['navy','maroon'])

plt.xlabel('X Achse m')
plt.ylabel('Y Achse Taxi quer ')
plt.legend(loc='upper left', frameon=False)
plt.title('Franz jagt im komplett verwahrlosten Taxi quer durch Bayern')
plt.show()

pdf.savefig()
plt.close()

Ошибка называется: ValueError: Нет такого числа: Нет

А как мне получить вторую ось "Y" для второго значения?

1 Ответ

0 голосов
/ 06 июля 2018

Как правило, savefig следует называть перед show. Смотри, например,

Во-вторых, вы хотите создать сюжет внутри созданной фигуры, а не создавать новую, поэтому используйте

fig, ax = plt.subplots(figsize=...)
df.plot(..., ax=ax)

и позже вызывать методы осей (объектно-ориентированный стиль).

Всего

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
#######################

Val1 = [1,2,3,4,5,6,7,8,9,9,5,5] # in kWh
Val2 = [159,77,1.716246,2,4,73,128,289,372,347,354,302] #in m³


index = ['Apr', 'Mai', 'Jun', 'Jul','Aug','Sep','Okt','Nov','Dez','Jan', 'Feb', 'Mrz']
df = pd.DataFrame({'Val1': Val1,'Val2': Val2}, index=index)



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

    plt.rc('text', usetex=True)
    params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
    plt.rcParams['font.family'] = 'serif'
    plt.rcParams['font.serif'] = 'Times New Roman'
    plt.rcParams.update(params)

    fig, ax = plt.subplots(figsize=(8, 6))
    plt.rcParams.update({'font.size': 12}) 
    df[['Val1','Val2']].plot.bar(color=['navy','maroon'], ax=ax)

    ax.set_xlabel('X Achse m')
    ax.set_ylabel('Y Achse Taxi quer ')
    ax.legend(loc='upper left', frameon=False)
    ax.set_title('Franz jagt im komplett verwahrlosten Taxi quer durch Bayern')
    pdf.savefig()
    plt.show()
    plt.close()

Теперь, если вам все еще нужно сохранить фигуру после того, как она будет показана, вы можете сделать это, указав ее в качестве аргумента savefig

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