Ik kwam dit voorbeeld in de Matplotlib-website. Ik vroeg me af of het mogelijk was om de figuurgrootte te vergroten.
Ik heb geprobeerd met
f.figsize(15,15)
Maar het doet niets.
Antwoord 1, Autoriteit 100%
Als u al het gebruik van het cijferobject hebt:
f.set_figheight(15)
f.set_figwidth(15)
Maar als u de opdracht-.subplots () gebruikt (zoals in de voorbeelden die u laat zien) om een nieuw cijfer te maken, kunt u ook gebruiken:
f, axs = plt.subplots(2,2,figsize=(15,15))
Antwoord 2, Autoriteit 7%
Maak alternatief een figure()
Object met behulp van de figsize
Argument en gebruik vervolgens add_subplot
om uw subplots toe te voegen. B.g
import matplotlib.pyplot as plt
import numpy as np
f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')
Voordelen van deze methode zijn dat de syntaxis dichter bij oproepen van subplot()
is in plaats van subplots()
. B.v. Subplots lijken niet te ondersteunen met behulp van een GridSpec
voor het besturen van de afstand van de subplots, maar zowel subplot()
en add_subplot()
do.
Antwoord 3, Autoriteit 2%
In aanvulling op de vorige antwoorden, is hier een optie om de grootte van de figuur en de grootte van de subplots binnen de figuur afzonderlijk in te stellen door middel van gridspec_kw
:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
#generate random data
x,y=range(100), range(10)
z=np.random.random((len(x),len(y)))
Y=Y=[z[i].sum() for i in range(len(x))]
z=pd.DataFrame(z).unstack().reset_index()
#Plot data
fig, axs = plt.subplots(2,1,figsize=(16,9), gridspec_kw={'height_ratios': [1, 2]})
axs[0].plot(Y)
axs[1].scatter(z['level_1'], z['level_0'],c=z[0])
Antwoord 4
Voor het plotten van subplots
in een for loop
wat soms handig is:
Voorbeeldcode voor een matplotlib
-plot van meerdere subplots van histogrammen uit een multivariate numpy array
(2-dimensionaal).
plt.figure(figsize=(16, 8))
for i in range(1, 7):
plt.subplot(2, 3, i)
plt.title('Histogram of {}'.format(str(i)))
plt.hist(x[:,i-1], bins=60)