2012-07-27 10 views
6

chciałbym renderować styl ggplot2 wypełnione siatką, a la this http://had.co.nz/ggplot2/graphics/b1d84765165d97b51c63c292bc638f0b.pngJak mogę wypełnić siatkę matplotlib?

nie byłem w stanie znaleźć żadnych zasobów internetowych, które zajmują się stylizacji siatkę w taki sposób. Czy muszę uciekać się do robienia czegoś takiego jak kreślenie własnych prostokątnych łatek?

Edycja: po wypróbowaniu rozwiązania Chrisa napisałem scenariusz, który pomoże uczynić wykresy matplotlib wyglądające jak ggplot2, jeśli ktokolwiek jest zainteresowany.

http://messymind.net/making-matplotlib-look-like-ggplot/

+2

Z wypełnieniem masz na myśli kolor tła? – steffen

+0

+1 za wniesienie wkładu do rozwiązania. – Chris

+0

czy znasz stronę https://github.com/yhat/ggplot? – tacaswell

Odpowiedz

6

Poniższy kod wykorzystuje matplotlib.pyplot.grid włączyć siatkę i ustawić właściwości (kolor linii siatki, styl i szerokość), a następnie używa plt.gca().patch.set_facecolor('0.8') zmienić kolor osie (nie jestem pewien, czy istnieje , ale musi to być funkcja wygody). Argumentem dla patch.set_facecolor jest dowolny matplotlib colour.

import numpy 
import matplotlib.pyplot as plt 

x = numpy.random.rand(10) 
x = numpy.random.rand(10) 

plt.plot(x, y, 'o') 

plt.grid(True, color='w', linestyle='-', linewidth=2) 
plt.gca().patch.set_facecolor('0.8') 

plt.show() 

Rezultatem jest

Figure generated by the code above

+1

Brilliant. Nie spodziewałem się, że dostanę odpowiedź, a tym bardziej taką prostą. Rozwiążę tę kwestię i zobaczę, czy mogę ją wprowadzić do galerii. – Bicubic

Powiązane problemy