Mam następujące działki:
Ładniej wyglądałyby, gdyby miały taką samą szerokość. Czy masz pomysł, jak to zrobić w notebooku ipython, gdy używam %matplotlib inline
?
AKTUALIZACJA:
Aby wygenerować obie liczby, używam następujących funkcji:
import numpy as np
import matplotlib.pyplot as plt
def show_plots2d(title, plots, points, xlabel = '', ylabel = ''):
"""
Shows 2D plot.
Arguments:
title : string
Title of the plot.
plots : array_like of pairs like array_like and array_like
List of pairs,
where first element is x axis and the second is the y axis.
points : array_like of pairs like integer and integer
List of pairs,
where first element is x coordinate
and the second is the y coordinate.
xlabel : string
Label of x axis
ylabel : string
Label of y axis
"""
xv, yv = zip(*plots)
y_exclNone = [y[y != np.array(None)] for y in yv]
y_mins, y_maxs = zip(*
[(float(min(y)), float(max(y))) for y in y_exclNone]
)
y_min = min(y_mins)
y_max = max(y_maxs)
y_amp = y_max - y_min
plt.figure().suptitle(title)
plt.axis(
[xv[0][0], xv[0][-1], y_min - 0.3 * y_amp, y_max + 0.3 * y_amp]
)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
for x, y in plots:
plt.plot(x, y)
for x, y in points:
plt.plot(x, y, 'bo')
plt.show()
def show_plot3d(title, x, y, z, xlabel = '', ylabel = '', zlabel = ''):
"""
Shows 3D plot.
Arguments:
title : string
Title of the plot.
x : array_like
List of x coordinates
y : array_like
List of y coordinates
z : array_like
List of z coordinates
xlabel : string
Label of x axis
ylabel : string
Label of y axis
zlabel : string
Label of z axis
"""
plt.figure().suptitle(title)
plt.pcolormesh(x, y, z)
plt.axis([x[0], x[-1], y[0], y[-1]])
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.colorbar().set_label(zlabel)
plt.show()
python
matplotlib
ipython
ipython-notebook
pt12lol
źródło
źródło
%matplotlib notebook
Odpowiedzi:
Jeśli używasz
%pylab inline
możesz (w nowej linii) wstawić następujące polecenie:%pylab inline pylab.rcParams['figure.figsize'] = (10, 6)
Spowoduje to ustawienie wszystkich cyfr w dokumencie (o ile nie określono inaczej) na taki sam rozmiar
(10, 6)
, gdzie pierwsza pozycja to szerokość, a druga to wysokość.Zobacz ten wpis SO po więcej szczegółów. https://stackoverflow.com/a/17231361/1419668
źródło
figsize(10, 6)
wykonuje pracę i czasy łatwiejsze do zapamiętania.Tak to zrobiłem:
%matplotlib inline import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = (12, 9) # (w, h)
Możesz zdefiniować własne rozmiary.
źródło
plt.rcParams["figure.figsize"] =(12,9)
też to działaJeśli nie jesteś w notatniku ipython (takim jak OP), możesz również po prostu zadeklarować rozmiar podczas deklarowania liczby:
width = 12 height = 12 plt.figure(figsize=(width, height))
źródło