Thursday, July 31, 2014

ggplot

R dilinde cokca kullanilan ggplot2 kutuphanesi nihayet Python'a tasinmaya baslandi. Kurmak icin,

sudo pip install ggplot

Konu hakkinda guzel bir yazi

Matplotlib ile cok zor yapilan isler ggplot2 ile rahat yapilabiliyor. Kutuphanenin cok ciddi takipcileri / hayranlari var, ozellikle daha once R ile kodlama yapmis olan istatistikciler ve bilimciler. Bu kisilerin cok sevdigi bir ozellik bir grafigin kesit kesit (layer by layer) ust uste konarak tasarlanabilmesi. Bu yaklasima gore grafik noktalari bir kesit, yazilari bir baska kesit, eksen boyutlari bir baska kesit olabilir mesela, ve bu ekler hep benzer cagrilarla yapilir (burada + isareti kullanilmis olmasi raslanti degil). Kutuphane, Leland Wilkinson'un Grafigin Grameri adli yaklasiminin kodlanmis halidir; yani grafiklemenin dili boyle olmalidir seklinde bir yaklasimdir bu -- oldukca iddialidir.

Ornek,

from ggplot import *
print mtcars[:3]

            name   mpg  cyl  disp   hp  drat     wt   qsec  vs  am  gear  carb
0      Mazda RX4  21.0    6   160  110  3.90  2.620  16.46   0   1     4     4
1  Mazda RX4 Wag  21.0    6   160  110  3.90  2.875  17.02   0   1     4     4
2     Datsun 710  22.8    4   108   93  3.85  2.320  18.61   1   1     4     1

[3 rows x 12 columns]


Ilk grafik

from ggplot import *
p = ggplot(mtcars, aes('mpg', 'qsec'))
p = p + geom_point(colour='steelblue') + \
     scale_x_continuous(breaks=[10,20,30], \
     labels=["horrible", "ok", "awesome"])
plt = p.draw()
plt.show()



Goruldugu gibi her sey kesit kesit ekleniyor. Histogram

p = ggplot(aes(x='carat'), data=diamonds)
gg = p + geom_histogram() + ggtitle("Histogram of Diamond Carats") + labs("Carats", "Freq")

plt = gg.draw()
plt.show()



Histogram ve onun uzerine eklenmis egri

p = ggplot(aes(x='wt'),mtcars) + geom_histogram() + geom_density()



Beyzbol verisi uzerinde

df = pd.read_csv("baseball-pitches-clean.csv")
df = df[['pitch_time', 'inning', 'pitcher_name', 'hitter_name', 'pitch_type',
         'px', 'pz', 'pitch_name', 'start_speed', 'end_speed', 'type_confidence']]
print df.head()

                  pitch_time  inning       pitcher_name    hitter_name  \
0  2013-10-01 20:07:43 -0400       1  Francisco Liriano  Shin-Soo Choo  
1  2013-10-01 20:07:57 -0400       1  Francisco Liriano  Shin-Soo Choo  
2  2013-10-01 20:08:12 -0400       1  Francisco Liriano  Shin-Soo Choo  
3  2013-10-01 20:08:31 -0400       1  Francisco Liriano  Shin-Soo Choo  
4  2013-10-01 20:09:09 -0400       1  Francisco Liriano   Ryan Ludwick  

  pitch_type     px     pz pitch_name  start_speed  end_speed  type_confidence 
0          B  0.628  1.547   Fastball         93.2       85.3            0.894 
1          S  0.545  3.069   Fastball         93.4       85.6            0.895 
2          S  0.120  1.826     Slider         89.1       82.8            0.931 
3          S -0.229  1.667     Slider         90.0       83.3            0.926 
4          B -1.917  0.438     Slider         87.7       81.6            0.915 

[5 rows x 11 columns]

Grafikleme

p = ggplot(aes(x='start_speed'), data=df) + geom_histogram() + facet_wrap('pitch_name')
plt = p.draw()
plt.show()



No comments: