dersblog

ggplot

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

sudo pip install ggplot

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
  carb0
      Mazda RX4
  21.0
    6
   160
  110
  3.90
  2.620
  16.46
   0
   1
     4
     41
  Mazda RX4 Wag
  21.0
    6
   160
  110
  3.90
  2.875
  17.02
   0
   1
     4
     42
     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() + gg
title("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()


Yukarı