Rabu, 03 Februari 2016

softksil (Facetgrid with custom projection)

Diposting oleh Unknown di 08.33
KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa atas segala rahmatNYA sehingga buku ini dapat tersusun hingga selesai . Tidak lupa kami juga mengucapkan banyak terimakasih atas bantuan dari pihak yang telah berkontribusi dengan memberikan sumbangan baik materi maupun pikirannya. Terima kasih juga kami sampaikan kepada Bapak I Made Wiryna, SSI, SKom, MSc karena dengan menyusun buku inilah kami dapat meningkatkan kecerdasan emosional kami dengan cara saling berinteraksi satu sama lain dalam proses penyusunannya

Dan harapan kami semoga buku ini dapat menambah pengetahuan dan pengalaman bagi para pembaca. Untuk ke depannya dapat memperbaiki bentuk maupun menambah isi buku agar menjadi lebih baik lagi.

Karena keterbatasan pengetahuan maupun pengalaman kami, Kami yakin masih banyak kekurangan dalam buku ini. Oleh karena itu kami sangat mengharapkan saran dan kritik yang membangun dari pembaca demi kesempurnaan buku ini.

Jakarta, Januari 2016

Penyusun

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Pada penyusunan tentang FacetGrid With Custom Projection ini, kami selaku penulis akan membahas tentang dua metode yaitu metode seaborn dan metode ggplot2. Disini kami akan menggunakan bahasa python untuk pengaplikasian nya, dan akan menggunakan empat jenis package yaiut package scipy, numpy, pandas dan yang terakhir package matplotlib. FacetGrid sendiri adalah obyek yang dapat menghubungkan Pandas Data Frame dari matplotlib dengan struktur-struktur tertentu pada seaborn. FaceGrid juga digunakan untuk menggambar plot dengan menggunakan beberapa Axis, dimana setiap Axis akan menunjukan hubungan yang sama dengan tingkat yang berbeda pada beberapa variable. Hal ini digunakan untuk mengkondisikan tiga variable dengan menetapkan variable baris dan kolom pada grid, dengan menggunakan warna berbeda untuk setiap elemen plot.

1.2 Pengenalan

1.2.1 Seaborn

Seaborn sendiri adalah library untuk membuat grafik statistik yang menarik dan informatif pada Python. Hal ini dibangun di atas matplotlib dan terintegrasi dengan Py Data stack, termasuk dukungan untuk numpy, data panda struktur dan rutinitas statistik dari scipy dan stats models 1. Beberapa fitur yang ditawarkan seaborn:

• Beberapa built-in tema yang memperbaiki estetika matplotlib standar

• Alat untuk memilih palet warna untuk membuat plot yang indah yang mengungkapkan pola dalam data Anda

• Fungsi untuk memvisualisasikan distribusi univariat dan bivariat atau untuk membandingkan mereka antara subset data

• Alat yang sesuai dan memvisualisasikan model regresi linier untuk berbagai jenis variabel independen dan dependen

• Fungsi yang memvisualisasikan matriks data dan penggunaan pengelompokan algoritma untuk menemukan struktur dalam matriks-matriks

• Sebuah fungsi untuk plot data time series statistik dengan estimasi fleksibel dan representasi ketidakpastian sekitar estimasi

• Abstraksi tingkat tinggi untuk grid penataan plot yang memungkinkan Anda dengan mudah membangun visualisasi kompleks

1.2.2 GGPLOT2

Kami akan menjelaskan cara untuk membuat berbagai macam plot. Plot yang akan digunakan adalah ggplot2, plot(), dan plot singkat dan cepat. GGplot sendiri digunakan untuk memudahkan menghasilkan plot yang kompleks. Kami juga akan memberikan pengelanan ggplot2 dengan banyak contoh kode dan grafis agar pembaca dapat memilih dan memilah kode dan grafis yang ingin digunakan. Kemudian kami juga akan menjelaskan tata bahasa yang digunakan pada ggplot2. Layaknya sistem formal lain nya, ggplot2 juga berguna bahkan ketika kita tidak mengerti model yang mendasari. Dan kami mengasumsikan beberapa hubungan dasar dengan R ke tingkat yang dijekaskan dalam bab pertama ini yang di terjemahkan dari Dalgaard Pengantar Statistik dengan R. Kita harus tahu bagaimana untuk mendapatkan darai dari kita ke R dan bagaimana melakukan manipulasi terhadap data dasar. Kami akan memperkenalkan ggplot2 untuk pemula, jadi untuk kita yang baru belajar, kita akan sama sama belajar tentang menggunakan tata bahasa, menggunakan dasar-dasar, sehingga kita dapat membuat ulang plot yang sudah kita pahami nantinya.

Dan harapan kami dengan penulisan nya buku ini adalah merubah pemula menjadi seorang ahli yang dapat membangun komponen baru untuk dapat memperpanjang tata bahasa. Wilkonson (2005) menciptakan tatabahasa grafis untuk menggambarkan fitur dalam yang mendasari semua grafik statistik. Tata bahasa berlapis grafis (Wickham,2009) dibangun di atas tata bahasa Wilkinson, fokus pada keunggulan yang lapisan dan beradaptasi untuk menambahkan dalam R. Secara singkat, tata bahasa memberi tahu kita bahwa grafis statistik adalah pemetaan dari data atribut estetika (Warna, bentuk, ukuran) dari objek geometris (titik, garis, bar). Plot mungkin juga mengandung transformasi statistik dari data dan digambar pada sistem koordinasi. Faceting dapat digunakan untuk menghasilkan plot yang sama untuk himpunan yang berbeda pada bagian dataset. Ini adalah kombinasi dari koponen-komponen independen yang membentuk grafik. Kami menggunakan langsung tata bahasa formal yang akan dijelaskan untuk meningkatkan rincian yang ada.

Deskrispi pertama dari komponen nya memperkenalkan beberapa termonologi yang akan kami gunakan di seluruh buku, dan tanggung jawab dasar dari setiap komponen yang ada. Jangan khawatir jika kita sulit mengerti, karena kita akan memiliki banyak kesempatan untuk belajar tentang semua potongan plot dan bagaimana mereka bisa bersatu. Data yang ingin kita visualisasikan dan satu set pemetaan estetika yang menggambarkan bagaimana variabel dalam data dipetakan ke atribut estetika. Objek geometris adalah geometris untuk jangka pendek, mewakili apa yang sebenernya kita lihat di plot ; titik, garis, poligon, dll. Transformasi statistik adalah statistik untuk jangka pendek, meringkas data dalam banitung pengamatan untuk membuat histogram, atau meringkas hubungan 2D dengan model linier. Statistik adalah opsional, tapi sangat berguna. kita akan melakukan pertimbangan untuk pemetaan nilai diruang data untuk nilai-nilai di ruang estetika, apakah itu untuk warna, ukuran atau bentuk. Kemudian kita akan menggambar skala legenda atau sumbu yang memberikan pemetaan terbalik agar memungkinkan pembaca untuk membaca data asli dari nilai-nilai pada grafik. Sistem kordinat untuk jangka pendek akan menggambarkan bagaimana koordinat data melakukan pemetaan pada bidang grafis. Hal ini akan memberikan sumpu dan gridlines yang memungkinkan kita untuk membaca grafik.

Kami biasa nya menggunakan koordinat Cartesian System tetapi ada juga beberapa orang yang mungkin menggunakan koordinat polar dan proyeksi peta. Sebuah faceting kation spesifik menjelaskan cara untuk memecah data ke dalam himpunan bagian dan bagaimana menampilkan subset sebagai kelipatan kecil. Hal itu juga dikenal sebagai latticing. Penting juga untuk membahas hal apa yang grammar tidak dapat lakukan : Hal ini dapat menyarankan grafis yang harus kita gunakan untuk menjawab pertanyaan yang kita inginkan. Kami juga berusaha mendukung semu proses yang masuk akal untuk membuat plot data, terfokus dari tujuan kami yaitu bagaimana membuat plots yang kita inginkan tanpa mengetahui plot apa saja yang dibuat. Ironisnya tata bahasa tidak menjelaskan grafis harus seperti apa.

Titik halus yang ditampilkan, contoh ukuran font, warna background yang tidak dijelaskan dalam tata bahasa. Pada kenyataannya sistem plotting yang berguna harus menjelaskan hal-hal diatas. Tidak menjelaskan iterasi tata bahasa grafis hanya menjelaskan grafis statis dan pada dasarnya tidak ada yang ditampikan pada komputer layar sebagai lawan pada selembar kertas. Ggplot2 hanya dapat membuat statis grafis, sehingga untuk grafis yang dinamis dan interaktif Anda akan harus melihat di tempat lain. Masak dan Swayne (2007) memberikan pengenalan yang sangat baik untuk paket grafis interaktif ggobi. Ggobi dapat dihubungkan ke R dengan paket ggobi.

BAB 2

KONSEP

2.1 Seaborn

Seaborn bertujuan untuk membuat visualisasi bagian tengah yang akan mengeksplorasi dan memahami data. Fungsi nya adalah merencanakan operasi pada frame data dan array yang berisi seluruh dataset dan internal yang akan melakukan agregasi bila diperlukan dan statistik model pas untuk menghasilkan plot informatif. Jika matplotlib "mencoba untuk membuat hal-hal mudah yang mudah dan hal-hal sulit yang mungkin", Seaborn mencoba untuk membuat set yang didefinisikan dengan baik hal-hal yang sulit maupun yang mudah juga.

Fungsi perencanaan akan mencoba untuk melakukan sesuatu hal ayng berguna ketika dipanggil dengan minimal set argument, dan mereka akan mengekspos sejumlah pilihan yang disesuaikan melalui parameter tambahan. beberapa fungsi petak langsung ke matplotlib adalah sebuah kapak objek, sementara yang lain akan beroperasai pada sosok seluruh dan menghasilkan plot dengan beberapa panel. Dalam kasus struktur dataset dengan cara yang abstrak. Karena Seaborn menggunakan matplotlib, grafis nya akan lebih tweak menggunakan alat matplotlib dengan diberikan dengan salah satu backends matplotlib untuk menghasilkan angka publikasi berkualitas.

Seaborn juga dapat digunakan untuk menargetkan grafis berbasis web melalui mpld3. Seaborn harus dianggap sebagai pelengkap untuk matplotlib, bukan pengganti untuk itu. Bila menggunakan Seaborn, ada kemungkinan kita akan sering memanggil fungsi matplotlib langsung dengan menggambar plot sederhana seperti yang sudah tersedia melalui namespace pyplot. Selanjutnya, sedangkan fungsi Seaborn bertujuan untuk membuat plot yang "siap produksi" (termasuk penggalian informasi dari objek Panda untuk menambahkan label informatif), kustomisasi penuh angka akan memerlukan pemahaman yang canggih benda matplotlib.

2.1.1 Pembahasan Facetgrid dalam Seaborn

• class seaborn.FacetGrid(data, row=None, col=None, hue=None, col_wrap=None

• sharex=True, sharey=True, size=3, aspect=1, palette=None, row_order=None

• col_order=None, hue_order=None,hue_kws=None, dropna=True, legend_out=True,            

• despine=True, margin_titles=False, xlim=None, ylim=None, subplot_kws=None,            

• gridspec_kws=None)

Jaringan subplot untuk merencanakan hubungan bersyarat            

• __init__(data, row=None, col=None, hue=None, col_wrap=None, sharex=True

• sharey=True, size=3, aspect=1, palette=None, row_order=None, col_order=None,            

• hue_order=None, hue_kws=None, dropna=True, legend_out=True, despine=True,            

• margin_titles=False, xlim=None, ylim=None, subplot_kws=None,            

• gridspec_kws=None)

Menginisialisasi bentuk dari matplotlib dan objek FacetGrid The FacetGrid adalah obyek yang menghubungkan Pandas DataFrame untuk membentuk matplotlib dengan struktur tertentu Secara khusus, FacetGrid digunakan dalam menggambar plot dengan beberapa Axes dimana setiap Axes menunjukkan hubungan yang sama dengan kondisi pada tingkat yang berbeda dari beberapa variabel. Yang memungkinkan mengkondisikan hingga tiga variabel dengan menetapkan variabel untuk baris dan kolom dari grid dan menggunakan warna yang berbeda untuk elemen plot.

Pendekatan umum untuk merencanakan yang disebut "kelipatan kecil", di mana setiap jenis plot yang sama diulang beberapa kali, dan penggunaan spesifik kelipatan kecil untuk menampilkan hubungan yang sama AC di satu lebih dari variabel lain yang sering disebut "teralis petak " Dasar alur kerjanya yaitu untuk menginisialisasi objek FacetGrid dengan dataset dan variabel yang digunakan untuk struktur grid. Kemudian satu atau lebih fungsi merencanakan dan diterapkan untuk setiap bagian dan memanggil FacetGrid.map () atau FacetGrid.map dataframe (). Akhirnya, plot dapat mengambil dengan metode lain untuk melakukan hal-hal seperti mengubah label sumbu, menggunakan kutu yang berbeda, atau menambahkan legenda. Lihatlah contoh kode di bawah ini untuk informasi lebih lanjut Parameters :

1. data : DataFrame

2. Rapi : ("lama-bentuk") frame data di mana setiap kolom adalah variabel dan setiap baris adalah pengamatan

3. row,col,hue : strings Variabel yang menentukan himpunan bagian dari data, yang akan diambil pada aspek terpisah dalam grid. Lihat * _order parameter untuk mengontrol urutan tingkat variabel ini

4. col_wrap : int, optional "Bungkus" variabel kolom pada lebar ini, sehingga aspek kolom span beberapa baris. Kompatibel dengan segi baris

5. share_{x,y} : bool, optional Jika benar, aspek akan berbagi dengan sumbu y di kolom atau x sumbu di baris

6. size : scalar, optional Tinggi (dalam inci) dari setiap aspek. Lihat juga: Aspek

7. aspect : scalar, optional Rasio aspek setiap aspek, sehingga aspek * ukuran memberikan lebar setiap aspek dalam inci

8. palette : seaborn color palette or dict, optional Warna yang akan digunakan untuk setiap tingkat yang berbeda dari variabel rona. Harus sesuatu yang bisa di terjemahkan oleh palet warna (), atau tingkat pemetaan rona kamus matplotlib warna.

9. {row,col,hue}_order : lists, optional Memesan untuk tingkat variabel faceting. Secara default, ini akan menjadi urutan tingkat muncul dalam data atau, jika variabel panda categoricals, atau urutan kategori

10. hue_kws : dictionary of param -> list of values mapping sebuah Argumen atau kata kunci lain untuk memasukkan ke dalam pemanggilan untuk merencanakan atau membiarkan atribut petak lainnya bervariasi di tingkat variabel hue (misalnya spidol di plot pencar).

11. legend_out : bool, optional Jika Benar, ukuran angka akan diperpanjang, dan legenda akan ditarik di luar plot di tengah kanan

12. despine : boolean, optional Lepaskan Duri atas dan kanan dari plot margin_titles : bool, optional Jika Benar, judul untuk variabel baris ditaruh di kanan kolom terakhir. Pilihan ini eksperimental dan bisa jadi tidak bekerja dalam semua kasus

13. {x,y}lim: tuples, optional Batas untuk masing-masing sumbu pada setiap aspek (hanya relevan ketika saham {x, y} Benar

14. subplot_kws : dict, optional Kamus argumen kata kunci dilewatkan ke Matplotlib subplot) metode

15. gridspec_kws : dict, optional Kamus argumen kata kunci dilewatkan ke Matplotlib modul gridspec (melalui plt.subplots). Membutuhkan matplotlib> = 1,4 dan diabaikan jika col_wrap not

2.2 GGPLOT2

Pada bagian ini kita akan belajar membuat berbagai macam plot dengan fungsi. pertama ggplot2, plot(), plot singkat dan cepat. Ggplot akan memudahkan menghasilkan plot kompleks, sering membutuhkan beberapa baris kode menggunakan plotting lainnya sistem, dalam satu baris. Qplot() dapat melakukan ini karena hal ini didasarkan pada tata bahasa grafis, yang memungkinkan kita untuk mebuat sederhana, namun ekspresif, deskripsi plot. Dalam bab-bab selanjutnya kita akan belajar untuk menggunakan semua kekuatan ekspresif tata bahasa, tapi di sini kami akan mulai sehingga kita dapat bekerja dengan cara kita. Kita juga akan mulai belajar beberapa terminologi ggplot2 yang akan digunakan seluruh buku. Qplot telah dirancang untuk menjadi sangat mirip plot, yang seharusnya membuat mudah jika kita sudah akrab dengan merencanakan di R. Ingat, selama kita bisa mendapatkan ringkasan dari semua argumen untuk qplot dengan R bantuan? Qplot. Dalam buku ini akan membahas :

1.      Fungsi penggunaan dasar qplot

2.      Cara untuk melakukan pemetaan variabel atribut etetika, seperti warna, ukuran dan bentuk

3.      Cara membuat berbagai jenis plot dengan menentukan geom berbeda

4.      Penggunaan faceting, juga dikenal sebagai jari-jari, pemecahan himpunan bagian dari data

5.      Bagaimana untuk menyesuaikan penampilan plot dengan menetapkan beberapa pilihan dasar

6.      Beberapa perbedaan penting antara plot() dan qplot()

2.2.1 Penggunaan Dasar

Seperti plot pada dasarnya, argument pertama dan kedua untuk qplot() adalah x dan y, dengan memberikan x dan y koordinat untuk benda-benda di setiap plot. Ada juga opsional untuk argument data. Jika spesifiknya adalah ed, ggplot() akan melihat ke dalam frame data yang sebelum nya sudah mencari benda-benda di ruang kerja kita. Dengan menggunakan argument data, direkomendasikan : Ide yang baik untuk menyimpan data terkait dalam bingkai data tunggal. Jika kita tidak menentukan satu, qlplot() akan mencoba untuk membangun satu untuk kita dan mungkin akan terlihat di tempat yang salah. Berikut ini adalah contoh sederhana dari penggunaan qplot().

Ini menghasilkan sebuat bar yang menunjukan hubungan antara harga dan karat(berat) dari berlian. Plot akan menunjukkan korelasi yang kuat dengan outliner terkenal dan beberapa pergoresan vertikal yang menarik. Hubungannya akan terlihat eksponensial, meskipun hal pertama yang kita ingin lakukan adalah mengubah variabel. Karena qplot() menerima fungsi variabel sebagai argumen, plot log (harga) vs log (karat). Hubungan yang sekarang akan terlihat linier. Dengan banyaknya overplotting ini, kita perlu berhati-hati tentang menarik kesimpulan tegas. Argumen ini juga bisa terdiri dari kombinasi variabel yang ada, sehingga jika kita bisa tahu tentang hubungan antara volume berlian (didekati dengan x X y X z) dan berat, kita bisa melakukan hal berikut : Kami harap kepadatan (berat/ volume) berlian konstan, dan melihat hubungan linier antara volume dan berat. Mayoritas berlian tampaknya jatuh di sepanjang garis, tetapi ada beberapa outliner besar.

2.2.2 Warna, Ukuran, Bentuk, dan Atribut Estetika Lainnya

Perbedaan utama ketika kita menggunakan ggplot bukan plot biasa adalah datang plot datang ketika kita ingin menetapkan warna atau ukuran ataupun bentuk untuk titik-titik pada plot kita. Dengan plot, tanggung jawab kita untuk mengkonversi sebuah variable kategorial dalam data kita (misalnya,”apel”, “pisang”, “pir”) menjadi sesuatu yang diketahui bagaimana menggunakan (misalnya, “merah”, “kuning”, “hijau”). Qplot dapat membantu kita melakukan hal ini secara otomatis, dan secara otomatis juga kita akan memberikan sebuah legend yang memetakan atribut yang akan di tampilkan dengan nilai nilai data. Hal ini akan mempermudah kita untuk memasukan data tambahan ke dalam plot. Pada contoh berikut, kita akan menambahkan plot karat dan harga dengan informasi tentang warna berlian dan pemotongan nya. Warna, ukuran dan bentuk merupakan contoh atribut esteika visual sifat bahwa? dll cara pengamatan ditampilkan.Untuk setiap atribut estetika, ada fungsi, yang disebut skala, yang memetakan nilai data ke valid nilai untuk estetika yang. Ini adalah skala ini yang mengontrol penampilan poin dan legenda yang terkait.

Sebagai contoh, di plot di atas, warna skala peta J untuk ungu dan F hijau. (Perhatikan bahwa sementara saya menggunakan ejaan Inggris dalam buku ini, perangkat lunak juga menerima ejaan Amerika. Anda juga dapat secara manual mengatur estetika menggunakan I(), misalnya, warna = I (“merah”) atau size = I (2). Ini tidak sama dengan pemetaan dan dijelaskan lebih rinci. untuk dataset besar, seperti data berlian, semi-poin transparan sering berguna untuk mengurangi beberapa overplotting tersebut. Untuk membuat warna semi-transparan anda dapat menggunakan estetika alpha, yang mengambil nilai antara 0 (benar-benar transparan) dan 1 (lengkap buram). Nya sering berguna untuk menentukan transparansi sebagai fraksi, misalnya, 10/01 atau 20/01, sebagai yang spesifik denominator es jumlah poin yang harus overplot untuk mendapatkan warna benar-benar buram. Warna, ukuran, dan bentuk merupakan contoh atribut sifat estetika visual yaitu dengan cara pengamatan tampilan. Untuk setiap atribut estetika, ada fungsi yang disebut skala, yang memetakan nilai data valid ke nilai estetika. Ini adalah skala yang mengontrol penampilan poin dan legend yang terkait.

Sebagai contoh, pada plot atas warna skala pet J untuk ungu dan F untuk hijau(Perhatikan bahwa sementara saya menggunakan ejaan Inggris dalam buku ini, perangkat lunak juga menerima ejaan Amerika. Kita juga dapat secara manual mengatur estetika menggunakan I(), misalnya, warna = I (“merah”) atau size = I (2). Ini tidak sama dengan pemetaan dan dijelaskan lebih rinci. untuk dataset besar, seperti data berlian, semi-poin transparan sering berguna untuk mengurangi beberapa overplotting. Untuk membuat warna semi-transparan anda dapat menggunakan estetika alpha, yang mengambil nilai antara 0 (benar-benar transparan) dan 1 (lengkap buram).

Hal ini sering berguna untuk menentukan transparansi sebagai fraksi, misalnya, 10/01 atau 20/01, sebagai yang spesifik denominator es jumlah poin yang harus overplot untuk mendapatkan warna benar-benar buram. Jenis Dierent atribut estetika berkerja lebih baik dengan berbagai jenis variable. Misalnya, warna dan bentuk bekerja dengan baik dengan variabel kategori, sedangkan ukuran bekerja lebih baik dengan variabel berkelanjutan. Jumlah data juga membuat perbedaan : jika ada banyak data, seperti di plot di atas, dapat sulit untuk membedakan kelompok derent. Sebuah solusi alternatif adalah dengan menggunakan faceting. Jenis Dierent atribut estetika bekerja lebih baik dengan menggunakan berbagai jenis variable, misalnya warna dan betuk akan bekerja dengan baik menggunakan variable kategori, sedangkan ukuran bekerja lebih baik dengan menggunakan variable berkelanjutan. Jumlah data juga akana membuat perbedaan : jika ada banyak data seperti plot diatas, kita akan sulit membedakan kelompok dierent dan solusi alternatifnya adalah menggunakan faceting.

2.2.3 Plot GEOMS

Qplot tidak terbatas pada scatterplots, tetapi bisa menghasilkan hampir semua jenis plot dengan memvariasikan GEOM tersebut. Geom, pendek untuk objek geometris, akan menggambarkan jenis objek yang di gunakan untuk menampilkan data. Beberapa permata telah menjadi terkait transformasi statistik, misalnya, histogram adalah statistik Binning ditambah bar GEOM. Perbedaan komponen ini dijelaskan dalam bab berikutnya. Disini kita akan memperkenalkan hal yang paling umum dan berguna untuk geoms, yang di selenggarakan oleh dimensi dari data yang mereka bekerja dengan.

The Geoms berikut memungkinkan anda untuk menyelidiki hubungan dua dimensi : 1.GEOM = “titik” menarik poin untuk menghasilkan sebuah sebar. Ini adalah default ketika ada memasok kedua x dan y argumen untuk qplot(). b 2.GEOM = “halus” ts halus untuk data dan menampilkan halus dan kesalahan standar, x 2.5.1. 3. GEOM = “boxplot” menghasilkan plot kotak-dan-kumis untuk meringkas distribusi satu set poin, x 2.5.2. 4. GEOM = “jalan” dan GEOM = “line” menarik garis antara titik data. Secara tradisional ini digunakan untuk mengeksplorasi hubungan antara waktu dan variable lain, tetapi garis dapat tetap digunakan untuk bergabung dengan pengamatan terhubung dalam cara lain.

Sebuah plot garis dibatasi untuk menghasilkan garis yang melakukan perjalanan dari kiri ke kanan, sementara jalur bisa pergi ke segala arah, x 2.5.5. Untuk distribusi 1d, pilihan anda GEOM dipandu oleh jenis variabel : Untuk variabel kontinu, yaitu GEOM = “Histogram” menarik histogram, GEOM =”Freqpoly” poligon frekuensi, dan GEOM = “Density” menciptakan densitas plot, x 2.5.3. Histogram GEOM adalah default ketika anda hanya memasok xnilai qplot(). Untuk variabel diskrit, yaitu GEOM = “Bar” membuat bar chart, x 2.5.4.

2.2.4 Box Plots and Jittered Points

Ketika sebuah set data termasuk kedalam sebuah kategori variabel dari satu atau lebih variabel kontinu, Kita mungkin akan menjadi tertarik untuk tahu bagaimana nilai pada variabel kontinu bervariasi dengan level kategori variabel. Box plots dan poin jitter menawarkan dua cara untuk melakukannya. Kita dapat mengeksplorasi bagaimana distribusi harga per karat bervariasi dengan tiap warna berlian yang menggunakan jitter (geom = “jitter”, kiri) dan box dan whisker plot (geom = “boxplot”, kanan).

Setiap metode punya kelebihan dan kekurangan. Boxplots meringkas kumpulan data dari distribusi dengan hanya 5 angka, ketika plot telah di goyangkan maka plot akan menunjukkan setiap poin, tetapi dapat terjadi overplotting. Di dalam contoh disini, setiap plot menunjukkan ketergantungan harga per karat pada warna berlian, dan boxplots akan menjadi lebih informatif, kita indikasikan disana ada sedikit perubahan pada median dan kuartil adjasensi. Overplotting yang akan terlihat di dalam kegoyangan pada nilai plot dapat kita ringankan dengan menggunakan semi-transparan poin dengan menggunakan argumen alpha. illustrasi perbedaan 3 level transparansi, dimana itu membuat lebih mudah untuk melihat dimana ada angka terbesar. Plot di dapat dengan mengikuti Kode.

• qplot(warna, harga / karat, data = berlian, geom = “kegoyangan”, alpha = I(1 / 5))            

• qplot(warna, harga / karat, data = berlian, geom = “kegoyangan”, alpha = I(1 / 50))            

• qplot(warna, harga / karat, data = berlian, geom = “kegoyangan”, alpha = I(1 / 200))

Teknik ini tidak dapat menunjukkan posisi baik posisi kuartil maupun posisi boxplot yang di dapat, tetapi hal ini dapat memperlihatkan fitur yang lain pada distribusi yang boxplot tidak dapat. Pada kegoyangan Poin, qplot menawarkan kontrol yang sama di atas estetika tersebut. sebagai normal sebaran plot: ukuran, warna dan bentuk. Pada boxplot kita dapat mengkontrol warna garis tepi, dalamnya juga di penuhi warna dan ukuran garis. Cara lain untuk melihat kondisi distribusi adalah dengan menggunakan penitikan pada plot sebuah histogram terpisah atau densitas plot pada setiap nilai dari kategori variabel.

2.2.5 Bar Charts

Analog yang berlainan pada histogram yaitu bar chart, geoms = “bar”. Akan menghitung angka pada instansi di setiap kelas jadi kita tidak perlu untuk mentabulasi nilai kita sebelumnya, seperti dengan R besar adalah bar chart. Jika data telah selesai ditabulasi atau jika Anda suka untuk mentabulasi anggota kelas dibeberapa cara lain, seperti dengan penjumlahan sebuah variabel kontinu, Anda dapat menggunakan weight geom. Ini adalah ilustrasi di dalam figur 2.13. Plot pertama adalah bar chart yang sederhana pada warna berlian dan yang kedua adalah bar chart yang warna berliannya diberati oleh karat.

• qplot(color, data = diamonds, geoms = “bar”)            

• qplot(color, data = diamonds, geoms = “bar”, weight = carat) + scale_y_continuous(“carat”)

2.2.6 Facetting 1

Kita sudah dapat berdiskusi menggunakan estetika (warna dan betuk) untuk mebandingkan subgroup-subgroup berikutnya, dengan menggambar semua grup pada plot yang sama. Facetting memiliki alternative untuk memunculkan : Membuat tabel dari grafik dengan memisahkan data menjadi sub sub bagian data dan menampilkan grafik yang sama di setiap sub data dalam sebuah aransemen yang memfasilitasi itu. Secara default facetting menggunakan method di qplot() dapat membuat plot yang disusun dalam koordinat yang spesifik dengan formula facetting yang terlihat seperti row_var ~ col_var.

Kita dapat menspesifikasikan sebanyak baris dan kolom variabel sesuka kita, perlu diingat bahwa menggunakan lebih dari dua variabel akan sering memunculkan produk sebuah plot yang lebih besar dan itu sulit untuk dilihat di layar. Untuk facetting terdapat hanya pada satu kolom atau baris, kita menggunakan titik sebagai tempat untuk menahan. Sebagai contoh, row_var ~. akan membuat satu kolom dengan banyak baris.

Set histogram pertama akan menunjukkan distribusi kondisi karat pada warna. Set yang kedua pada historam akan menunjukkan proporsi, dan membuatnya lebih mudah untuk membandingkan distribusi yang relatif pada berlian di setiap warnanya. Sekarang kita akan bahas sintaks densitasnya bar nya. Sumbu y pada histogram tidak masuk dalam original data tetapi dari statistik transformasi yang dihitung oleh angka observasi disetiap bin. Penggunaan densitas akan diberitahukan ggplot2 untuk melakukan pemetaan densitas ke dalam sumbu y ketimbang default yaitu digunakan untuk menghitung:

• qplot(carat, data = diamonds, facets = color ~., geom = “histogram”, binwidth = 0.1, xlim             = c(0,   3))            

• qplot(carat, ..density.., data = diamonds, facets = color ~ ., geom = “histogram”, binwidth            = 0.1, clim = c(0, 3))

2.2.7 Perbedaan dari Plot

Ada beberapa perbedaan yang penting antara plot dan qplot :

• qplot bukan generik : Anda tidak dapat melewati segala tipe dari objek R ke qplot dan mengharapkan perbedaan dari plot awal. Ingat, bagaimanapun ggplot() itu adalah generik, dan mungkin menyediakan sebuah titik awal untuk membuat visualisasi yang berubah pada objek R.

• Biasanya Anda akan menyuplai sebuah variabel ke atribut estetika yang Anda suka. Ini kemudian diubah ukurannya yang ditampilkan dengan legenda. Jika Anda ingin untuk menambahkan nilai, contoh untuk membuat titik merah, digunakan I() : warna = I(“merah”).

• Ketika Anda dapat meneruskan kegunaan nama estetika base R(col, pch, cex, dll), itu adalah ide yang bagus untuk menukar agar lebih mendekripsikan nama estetika ggplot2 (warna, bentuk dan ukuran). Mereka lebih mudah untuk diingat.

• Untuk menambahkan elemen grafik lebih jauh pada plot yang dibuat pada base grafik, Anda dapat menggunakan points(), lines() and text(). Dengan ggplot2, Anda butuh penambahan layer ke plot yang ada, terdeskripsi di bab selanjutnya.

BAB 3

Perangkat Lunak Untuk Pengaplikasian Facetgrid dengan Custom Projection

Mengaplikasikan facetgrid dengan custom projection .yang menggunakan dua metode yaitu GGPLOT2 dan Seaborn. Yang menggunakan bahasa pemograman phyton dan menambahkan packages untuk bisa menjalankan program facetgrid dengan custom projection.

3.1 Instalasi Seaborn

Untuk menginstal versi yang dirilis, Anda dapat menggunakan pip (dalam pip install Seaborn). Atau, dapat menggunakan pip untuk menginstal versi pengembangan, dengan perintah pip install git + git: //github.com/waskom/seaborn.git#egg=seaborn. Pilihan lainya yaitu mengkloning repositori github dan menginstal dengan pip install. dari direktori source. Seaborn sendiri merupakan bahasa pemgroman Python, sehingga instalasi cukup sederhana Bila menggunakan versi pengembangan, Anda mungkin ingin mengacu pada dokumentasi pembangunan. tetapi ini tidak dibangun secara otomatis dan bisa beberapa kali salah dari sinkron dengan cabang master sebenarnya pada github Yang kita perlukan yaitu:

1. Python 2.7 atau 3.3+ N

2. umpy

3. Scipy

4. Matplotlib

5. Pandas

6. Importing seaborn

Seaborn menerapkan parameter default untuk global gaya matplotlib kamus ketika Anda impor. Dan akan mengubah tampilan semua plot, termasuk yang dibuat dengan menggunakan fungsi matplotlib langsung. Untuk menghindari kejadian ini dan menggunakan estetika matplotlib default (dengan desain apapun dalam matplotlibrc Anda), Anda dapat mengimpor seaborn tapi hanya namespace saja. Seaborn juga mempunyai beberapa gaya pra-paket bersama dengan alat tingkat tinggi untuk dapat mengelola mereka, sehingga Anda tidak harus membatasi pada estetika default saja. Dengan konvensi, Seaborn disingkat sns pada impor.

3.2 Instalasi GGPLOT2

Untuk menggunakan ggplot2, kita perlu terlebih dahulu menginstal. Pastikan memiliki versi terbaru dari (http://r-project.org) lalu jalankan, berikut baris kode untuk men-download dan menginstal paket ggplot2. Website ini juga berisi pembahasan dan materi yang berhubungan dengan ggplot2 dan kesempatan berlatih jika Anda ingin mencoba belajar .

Website cran , http: //cran.r-project.or / web / paket / ggplot2 / , merupakan situs lain tentang ggplot2 . situs ini memberikan apa yang baru dan berbeda. Jika Anda pengguna ggplot2, sebaiknya Anda untuk mendaftar di grup ggplot2 mailing list , http: //groups.google.com/group / ggplot2 . situs tersebut cukup baik untuk untuk pengguna baru . sedangkan Situs buku , http://had.co.nz/ggplot2/book , menyediakan update untuk buku ini , serta PDF yang berisi semua grafis yang digunakan dalam buku ini , dengan kode dan data yang diperlukan untuk mereproduksi mereka .

Bab 4

Contoh Pemanfaatan Perangkat Lunak Untuk Facetgrid With Custom Projection

4.1 Seaborn Facetgrid with custom Projection

Python Source code            

• import matplotlib.pyplot as plt            

• import numpy as np            

• import pandas as pd            

• import seaborn as sns            

• sns.set()            

• Generate an example radial datast r = np.linspace(0, 10, num=100) df = pd.DataFrame({'r': r, 'slow': r,'medium': 2 * r, 'fast': 4 * r})            

• Convert the dataframe to long-form or "tidy" format df = pd.melt(df, id_vars=['r'], var_name='speed',  value_name='theta')

• Set up a grid of axes with a polar projection = sns.FacetGrid(df, col="speed", hue="speed",             subplot_kws=dict(projection='polar'), size=4.5, sharex=False, sharey=False, despine=False)            

• Draw a scatterplot onto each axes in the grid g.map(plt.scatter, "theta", "r")

4.1.1 Penggunaan Seaborn

Sesuai dengan pembahasan kita, maka akan dijelaskan cara menggunakan facet grid dalam Aplikasi Seaborn.

4.1.1.1 Merencanakan grid data-aware

Ketika menjelajahi Data menengah-dimensi, pendekatan yang berguna adalah untuk menarik beberapa contoh plot yang sama pada himpunan bagian yang berbeda dari dataset . Teknik ini kadang-kadang disebut juga "kisi", atau "teralis" merencanakan, dan hal itu berkaitan dengan gagasan "kelipatan kecil". Hal ini memungkinkan pembaca untuk cepat mengambil sejumlah besar informasi tentang data yang kompleks. Matplotlib menawarkan dukungan yang baik untuk membuat angka dengan beberapa sumbu. Seaborn membangun di atas ini untuk langsung menghubungkan struktur plot untuk struktur dataset . Untuk menggunakan fitur ini, data harus berada dalam Panda DataFrame dan harus mengambil bentuk apa Hadley Wickham panggilan "rapi" data. Singkatnya, itu berarti dataframe harus terstruktur sehingga setiap kolom adalah variabel dan setiap baris adalah pengamatan. Beberapa fungsi Seaborn (seperti lmplot (), factorplot (), dan pairplot ()) juga menggunakannya di belakang layar. Tidak seperti fungsi Seaborn lain yang "Axes-tingkat" dan menarik ke spesifik (mungkin sudah ada) matplotlib sumbu tanpa sebaliknya memanipulasi gambar, fungsi-tingkat yang lebih tinggi ini membuat angka saat dipanggil dan umumnya lebih ketat tentang bagaimana hal itu akan mengatur . Dalam beberapa kasus, argumen baik untuk fungsi-fungsi atau konstruktor dari kelas mereka bergantung akan memberikan antarmuka yang berbeda atribut seperti ukuran gambar, seperti dalam kasus lmplot () di mana Anda dapat mengatur tinggi dan rasio aspek untuk setiap aspek daripada ukuran keseluruhan gambar. Fungsi yang menggunakan salah satu dari benda-benda ini akan selalu kembali setelah merencanakan, meskipun, dan sebagian besar benda-benda ini memiliki metode kemudahan untuk mengubah bagaimana plot, sering dengan cara yang lebih abstrak dan mudah. Berikut adalah contoh potongan program dari langkah awal penggunaan Facetgrid dalam Seaborn:

%matplotlib inline

import numpy as np

import pandas as pd

import seaborn as sns from scipy

import stats

import matplotlib as mpl

import matplotlib.pyplot as plt

sns.set(style="ticks")

np.random.seed(sum(map(ord, "axis_grids"))).

4.1.1.2 Data Subsetting dengan FacetGrid

FacetGrid kelas berguna ketika ingin memvisualisasikan distribusi variabel atau hubungan antara beberapa variabel secara terpisah dalam himpunan bagian dari dataset . Sebuah FacetGrid dapat ditarik sampai dengan tiga dimensi: baris, col, dan hue. Dua yang pertama memiliki korespondensi yang jelas dengan array yang dihasilkan dari sumbu; memikirkan variabel rona sebagai dimensi ketiga sepanjang sumbu kedalaman, di mana tingkat yang berbeda diplot dengan warna yang berbeda. Kelas ini digunakan oleh menginisialisasi objek FacetGrid dengan dataframe dan nama-nama variabel yang akan membentuk dimensi baris, kolom, atau warna dari grid.

Variabel-variabel ini harus kategoris atau diskrit, dan kemudian data pada setiap tingkat variabel akan digunakan untuk segi sepanjang sumbu itu. Misalnya, kita ingin menguji perbedaan antara siang dan makan malam di dataset tips. Selain itu, kedua lmplot () dan factorplot () menggunakan objek ini secara internal, dan mereka kembali objek ketika mereka selesai sehingga bisa digunakan untuk tweaker lebih lanjut.

tips = sns.load_dataset("tips")

g = sns.FacetGrid(tips, col="time").



Menginisialisasi grid untuk set up matplotlib dan kapak, tetapi tidak menarik apapun pada mereka. Pendekatan utama untuk memvisualisasikan data pada jaringan ini adalah dengan metode FacetGrid.map (). Memberikan dengan fungsi merencanakan dan nama (s) dari variabel (s) di dataframe untuk merencanakan. Mari kita lihat distribusi tips dalam masing-masing subset ini, menggunakan histogram.

g = sns.FacetGrid(tips, col="time")

g.map(plt.hist, "tip")



Fungsi ini akan menarik gambar dan keterangan sumbu, mudah-mudahan menghasilkan plot selesai dalam satu langkah. Untuk membuat plot relasional, hanya lulus beberapa nama variabel. Disini juga dapat memberikan argumen kata kunci, yang akan diteruskan ke fungsi merencanakan:

g = sns.FacetGrid(tips, col="sex", hue="smoker")

g.map(plt.scatter, "total_bill", "tip", alpha=.7)

g.add_legend();



Ada beberapa pilihan untuk mengendalikan tampilan grid yang dapat dikirimkan ke konstruktor kelas.

g = sns.FacetGrid(tips, row="smoker", col="time", margin_titles=True)

g.map(sns.regplot, "size", "total_bill", color=".3", fit_reg=False, x_jitter=.1);



Perhatikan bahwa margin_titles biasanya tidak didukung oleh matplotlib API, dan mungkin tidak bekerja dengan baik dalam semua kasus. Secara khusus, itu saat ini tidak dapat digunakan dengan legenda yang terletak di luar plot. Ukuran gambar diatur dengan memberikan ketinggian setiap aspek, bersama dengan rasio aspek:

g = sns.FacetGrid(tips, col="day", size=4, aspect=.5)

g.map(sns.barplot, "sex", "total_bill");



Dengan versi matplotlib> 1.4, bisa memberikan parameter yang akan digunakan dalam modul gridspec. Yang dapat digunakan untuk menarik perhatian segi tertentu dengan meningkatkan ukurannya. Ini sangat berguna ketika memvisualisasikan distribusi dataset dengan nomor yang tidak sama dari kelompok di setiap aspek.

titanic = sns.load_dataset("titanic")

titanic = titanic.assign(deck=titanic.deck.astype(object)).sort("deck")

g = sns.FacetGrid(titanic, col="class", sharex=False, gridspec_kws={"width_ratios": [5, 3, 3]})

g.map(sns.boxplot, "deck", "age");

/Users/mwaskom/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:2:

FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....) from ipykernel import kernelapp as app



Urutan default dari segi berasal dari informasi dalam DataFrame tersebut. Jika variabel yang digunakan untuk mendefinisikan aspek memiliki tipe kategoris, maka urutan kategori yang digunakan. Jika tidak, aspek akan berada di urutan penampilan tingkat kategori. Hal ini dimungkinkan, namun, untuk menentukan urutan dari setiap dimensi aspek dengan tepat * urutan parameter:

ordered_days = tips.day.value_counts().index

g = sns.FacetGrid(tips, row="day", row_order=ordered_days, size=1.7, aspect=4,)

g.map(sns.distplot, "total_bill", hist=False, rug=True);



Setiap palet warna Seaborn (i.s., sesuatu yang dapat dikirimkan ke palet warna () dapat disediakan juga dapat menggunakan kamus yang memetakan nama-nama nilai-nilai dalam variabel rona warna untuk matplotlib valid:

pal = dict(Lunch="seagreen", Dinner="gray")

g = sns.FacetGrid(tips, hue="time", palette=pal, size=5)

g.map(plt.scatter, "total_bill", "tip", s=50, alpha=.7, linewidth=.5, edgecolor="white")

g.add_legend();



Kita juga dapat membiarkan aspek lain dari plot berbeda-beda di tingkat variabel rona, yang dapat membantu untuk membuat plot yang akan lebih dipahami bila dicetak dalam warna hitam-putih. Untuk melakukan hal ini, lulus kamus untuk rona KWS mana kunci adalah nama-nama merencanakan fungsi argumen kata kunci dan nilai-nilai yang daftar nilai-nilai kunci, satu untuk setiap tingkat variabel rona.

g = sns.FacetGrid(tips, hue="sex", palette="Set1", size=5, hue_kws={"marker": ["^", "v"]})

g.map(plt.scatter, "total_bill", "tip", s=100, linewidth=.5, edgecolor="white")

g.add_legend();



ika memiliki banyak tingkat satu variabel, dapat plot sepanjang kolom tapi "membungkus" mereka sehingga mereka menjangkau beberapa baris. Ketika melakukan hal ini, tidak dapat menggunakan variabel baris.

attend = sns.load_dataset("attention").query("subject <= 12")

g = sns.FacetGrid(attend, col="subject", col_wrap=4, size=2, ylim=(0, 10))

g.map(sns.pointplot, "solutions", "score", color=".3", ci=None);



Setelah ditarik menggunakan plot FacetGrid.map () (yang dapat disebut beberapa kali). Ada juga sejumlah metode pada objek FacetGrid untuk memanipulasi angka pada tingkat yang lebih tinggi dari abstraksi. Yang paling umum adalah FacetGrid.set (), dan ada metode yang lebih khusus lain seperti label FacetGrid.set axis (), yang menghormati fakta bahwa aspek interior tidak memiliki label sumbu. Sebagai contoh:

with sns.axes_style("white"):

g = sns.FacetGrid(tips, row="sex", col="smoker", margin_titles=True, size=2.5)

g.map(plt.scatter, "total_bill", "tip", color="#334488", edgecolor="white", lw=.5);

g.set_axis_labels("Total bill (US Dollars)", "Tip");

g.set(xticks=[10, 30, 50], yticks=[2, 6, 10]);

g.fig.subplots_adjust(wspace=.02, hspace=.02);



Untuk kustomisasi bahkan lebih, Anda dapat bekerja secara langsung dengan mendasari matplotlib Gambar dan objek Axes, yang disimpan sebagai anggota atribut di ara dan sumbu (array dua dimensi), masing-masing. Ketika membuat sosok tanpa baris atau kolom faceting, Anda juga dapat menggunakan atribut kapak untuk langsung mengakses sumbu tunggal.

g = sns.FacetGrid(tips, col="smoker", margin_titles=True, size=4)

g.map(plt.scatter, "total_bill", "tip", color="#338844", edgecolor="white", s=50, lw=1)

for ax in g.axes.flat:

ax.plot((0, 50), (0, .2 * 50), c=".2", ls="--")

g.set(xlim=(0, 60), ylim=(0, 14));



4.1.1.3 Pemetaan fungsi kustom ke grid

Tidak terbatas pada matplotlib ada dan fungsi Seaborn ketika menggunakan FacetGrid. Namun, untuk bekerja dengan baik, fungsi yang Anda gunakan harus mengikuti beberapa aturan: Ini harus merencanakan ke "aktif" Axes matplotlib. Ini akan menjadi kenyataan fungsi dalam namespace matplotlib.pyplot dan dapat menghubungi plt.gca untuk mendapatkan referensi ke Axes saat ini jika Anda ingin bekerja secara langsung dengan metode-metode. Ini harus menerima data yang plot dalam argumen posisional.

Secara internal, FacetGrid akan melewati Seri data untuk setiap argumen posisional bernama dilewatkan ke FacetGrid.map (). Ini harus dapat menerima warna dan label argumen kata kunci, dan, idealnya, ia akan melakukan sesuatu yang berguna dengan mereka. Dalam kebanyakan kasus, itu termudah untuk menangkap kamus generik kwargs dan lulus bersama dengan fungsi merencanakan mendasari. Mari kita lihat contoh minimal fungsi yang dapat merencanakan, fungsi ini hanya akan mengambil vektor data tunggal untuk setiap aspek:

def quantile_plot(x, **kwargs):

qntls, xr = stats.probplot(x, fit=False)

plt.scatter(xr, qntls, **kwargs)

g = sns.FacetGrid(tips, col="sex", size=4)



Jika ingin membuat plot bivariat, harus menulis fungsi sehingga menerima variabel x-axis pertama dan variabel y-sumbu kedua:

def qqplot(x, y, **kwargs):

_, xr = stats.probplot(x, fit=False)

_, yr = stats.probplot(y, fit=False)

plt.scatter(xr, yr, **kwargs)

g = sns.FacetGrid(tips, col="smoker", size=4)

g.map(qqplot, "total_bill", "tip");



Karena plt.scatter menerima warna dan label kata kunci argumen dan melakukan hal yang benar dengan mereka, kita dapat menambahkan aspek rona tanpa kesulitan apapun:

g = sns.FacetGrid(tips, hue="time", col="sex", size=4)

g.map(qqplot, "total_bill", "tip")

g.add_legend();



Pendekatan ini juga memungkinkan kita menggunakan estetika tambahan untuk membedakan tingkat variabel rona, bersama dengan argumen kata kunci yang tidak akan tergantung pada variabel faceting:

g = sns.FacetGrid(tips, hue="time", col="sex", size=4, hue_kws={"marker": ["s", "D"]})

g.map(qqplot, "total_bill", "tip", s=40, edgecolor="w")

g.add_legend();



Kadang-kadang, meskipun ingin untuk memetakan fungsi yang tidak bekerja seperti yang diharapkan dengan warna dan label argumen kata kunci. Dalam hal ini, ingin secara eksplisit menangkap mereka dan menangani mereka dalam logika fungsi kustom . Sebagai contoh, pendekatan ini memungkinkan penggunaan untuk memetakan plt.hexbin, yang dinyatakan tidak bermain dengan baik dengan FacetGrid API:

def hexbin(x, y, color, **kwargs):

cmap = sns.light_palette(color, as_cmap=True)

plt.hexbin(x, y, gridsize=15, cmap=cmap, **kwargs) with sns.axes_style("dark"):

g = sns.FacetGrid(tips, hue="time", col="time", size=4)

g.map(hexbin, "total_bill", "tip", extent=[0, 50, 0, 10]);



4.1.1.4 Merencanakan hubungan berpasangan dengan PairGrid dan barplot ()

PairGrid juga memungkinkan untuk cepat menggambar grid subplot kecil menggunakan jenis plot yang sama untuk memvisualisasikan data dalam setiap. Dalam Pair Grid, setiap baris dan kolom ditugaskan untuk variabel yang berbeda, sehingga plot yang dihasilkan menunjukkan setiap hubungan berpasangan dalam dataset. Gaya plot kadang-kadang disebut "sebar matriks", karena ini adalah cara yang paling umum untuk menunjukkan setiap hubungan, namun PairGrid tidak terbatas pada scatterplots. Sangat penting untuk memahami perbedaan antara FacetGrid dan PairGrid.

Setiap aspek menunjukkan hubungan yang sama AC pada tingkat yang berbeda dari variabel lain. Dalam terakhir, masing-masing plot menunjukkan hubungan yang berbeda (meskipun segitiga bagian atas dan bawah akan dicerminkan plot). Menggunakan PairGrid dapat memberikan sangat cepat, sangat ringkasan tingkat tinggi dari hubungan yang menarik dalam dataset . Penggunaan dasar kelas sangat mirip dengan FacetGrid. Pertama menginisialisasi grid, dan akan lulus merencanakan fungsi untuk metode peta dan akan disebut pada setiap anak petak. Ada juga fungsi pendamping, pairplot () yang diperdagangkan off fleksibilitas untuk lebih cepat plotting.

iris = sns.load_dataset("iris")

g = sns.PairGrid(iris)

g.map(plt.scatter);





Ini mungkin untuk plot fungsi yang berbeda pada diagonal menunjukkan distribusi univariat dari variabel dalam setiap kolom. Perhatikan bahwa kutu sumbu tidak akan sesuai dengan jumlah atau kepadatan sumbu plot ini.

g = sns.PairGrid(iris)

g.map_diag(plt.hist)

g.map_offdiag(plt.scatter);





Sebuah cara yang sangat umum untuk menggunakan plot ini warna pengamatan oleh variabel kategoris terpisah. Sebagai contoh, dataset iris memiliki empat pengukuran untuk masing-masing tiga spesies yang berbeda dari bunga iris sehingga dapat melihat bagaimana mereka berbeda.

g = sns.PairGrid(iris, hue="species")

g.map_diag(plt.hist)

g.map_offdiag(plt.scatter)

g.add_legend();





Secara default setiap kolom numerik dalam dataset yang digunakan, tetapi dapat fokus pada hubungan tertentu jika diinginkan.

g = sns.PairGrid(iris, vars=["sepal_length", "sepal_width"], hue="species")

g.map(plt.scatter);



Ini juga mungkin untuk menggunakan fungsi yang berbeda dalam segitiga atas dan bawah untuk menekankan aspek yang berbeda dari hubungan.

g = sns.PairGrid(iris)

g.map_upper(plt.scatter)

g.map_lower(sns.kdeplot, cmap="Blues_d")

g.map_diag(sns.kdeplot, lw=3, legend=False);





Grid persegi dengan hubungan identitas pada diagonal sebenarnya hanya kasus khusus, dan dapat merencanakan dengan variabel yang berbeda dalam baris dan kolom.

g = sns.PairGrid(tips, y_vars=["tip"], x_vars=["total_bill", "size"], size=4)

g.map(sns.regplot, color=".3")

g.set(ylim=(-1, 11), yticks=[0, 5, 10]);



Tentu saja, atribut estetika yang dapat dikonfigurasi. Misalnya, menggunakan palet yang berbeda (misalnya, untuk menunjukkan urutan dari variabel rona) dan melewati argumen kata kunci ke dalam fungsi merencanakan.

g = sns.PairGrid(tips, hue="size", palette="GnBu_d")

g.map(plt.scatter, s=50, edgecolor="white")

g.add_legend();



PairGrid fleksibel, tetapi untuk mengambil cepat melihat dataset, dapat lebih mudah untuk menggunakan kotak plot (). Fungsi ini menggunakan scatterplots dan histogram secara default, meskipun beberapa jenis lain akan ditambahkan (saat ini,dapat direncanakan plot regresi pada off-diagonal dan KDEs pada diagonal).

sns.pairplot(iris, hue="species", size=2.5);





Paa bagian ini kita juga dapat mengontrol estetika plot dengan argumen kata kunci, dan mengembalikan instance PairGrid untuk tweaker lebih lanjut.

g = sns.pairplot(iris, hue="species", palette="Set2", diag_kind="kde", size=2.5)





4.2 Dataset GGPLOT2

Pada kali ini kita hanya akan menggunakan satu sumber data, agar dengan mudah bisa dengan rincian merencanakan daripada memahami terlebih berbagai jenis set data. Dataset berlian terdiri dari harga dan kualitas yang informasinya berjumlah sekitar 54.000 berlian, dan termasuk dalam paket ggplot2. Data berisi empat C kualitas yaitu berlian, karat, memotong, warna dan kejelasan; dan mempunyai lima pengukuran yaitu fisik, kedalaman, meja, x, y dan z, seperti yang dijelaskan dalam gambar (4.2). Beberapa baris pertama dari data ditunjukkan pada tabel

Dataset belum rapihkan dengan baik, sehingga bisa menunjukkan hubungan yang menarik tentang berlian, itu juga yang bisa menunjukkan beberapa masalah dari kualitas data. Kami juga akan menggunakan dataset lain, yaitu dsmall yang merupakan sampel acak dari 100 berlian. dan kami akan menggunakan data ini untuk plot yang lebih tepat untuk dataset yang lebih kecil.

4.2.1 Adding a Smoother to a Plot

Jika anda memiliki penyebaran point data yang banyak, akan sulit untuk melihat secara tepat apa yang sering muncul yang ditunjukkan oleh data. Dalam hal ini anda mungkin ini harus merapikan baris untuk plot. Hal ini bisa dilakukan dengan GEOM seperti yang ditunjukkan pada Gambar 2.4. Perhatikan bahwa kami telah menggabungkan beberapa GEOMs dengan menyediakan nama vektor GEOM di buat dengan c (). The GEOM dan akan dilapisi, dan di urutkan ditempat dimana mereka muncul.

• qplot(karat, harga, data = d kecil, GEOM = c (“titik”, “halus”)).

• qplot(karat, harga, data = berlian, GEOM = c (“titik”, “halus”)).

Meskipun overplotting, kita bisa melihat dari hubungan eksponensial antara harga dan karat. Ada beberapa berlian lebih besar dari tiga karat, dan ketidakpastian dalam bentuk hubungan meningkat seperti yang di gambarkan oleh interval confidence titik bijak yang di tampilkan dalam warna abu-abu. Jika ingin mengubah confidence interval, menggunakan se = FALSE. Ada banyak Smoother yang berbeda yang dapat pilih dengan menggunakan Metode Argument :

Metode = “Loess”, Default untuk n kecil, gunakan regresi smooth lokal. Detail lebih tentang algoritma yang di gunakan dapat di temukan di Loess. Kegoyangan pada garis di atur oleh rentang parameter, yang jaraknya dari 0 (melebihi goyangan) to 1 ( tidak bergoyang).

• qplot(karat, harga, data = d kecil, geom = c(“titik”, “kehalusan”), rentang = 0.2).

• qplot(karat, harga, data = d kecil, geom = c(“titik”, “kehalusan”), rentang = 1).

Loess tidak bekerja dengan baik pada dataset besar (yang 0(n^2) di dalam memory), dan juga sebuah alternatif algoritma penghalusan yang di gunakan ketika n lebih besar dari 1000. bisa juga dengan mengisi mgcv library dan menggunakan metode = “gam”, formula = y ~ s(x) untuk mengisi generalisasi model additif.ini sama dalam menggunakan sebuah spline dengan lm, tetapi derajat kehalusannya dapat dihitung dari data. Pada data besar, gunakan formula y ~ s(x, bs = “cs”). yang di gunakan dengan default ketika ada lebih dari 1000 poin.

• library(mgcv)

• qplot(karat, harga, data = d kecil, geom = c(“titik”, “kehalusan”)

• metode = “gam”, formula = y ~ s(x)) qplot(karat, harga, data = d kecil, geom = c(“titik”, “kehalusan”), metode = “gam”, formula = y ~ s(x, bs = “cs”))

Metod = “rlm” berkerja seperti lm, tetapi menggunakan sebuah jarak untuk mencocokan algoritma jadi garis luarnya tidak terkena seperti isinya. Ini adalah bagian dari paket Massa, jadi dijarpakan untuk mengisi terlebih dahulu.

4.2.2 Histogram and Density Plots

Histogram dan densiti plot mengacu pada distribusi dari satu variabel. Yang menyediakan informasi lebih mengenai distribusi dari satu group atau lebih dari boxplot yang menyediakan, tetapi ini lebih menyulitkan untuk dapat membandingkan group-group (meskipun akan dapat melihat satu cara untuk menyelesaikannya). Figur (4.5) memperlihatkan distribusi pada karat dengan histogram dan lot densitinya.

• qplot(carat, data = diamonds, geom = “histogram”) qplot(carat, data = diamonds, geom    =”density”)

Pada plot densiti pengaturan argumen mengkontrol derajat smoother (nilai yang lebih tinggi dalam pengaturan menghasilkan plot yang lebih halus). Pada histogram argumen binwidth mengontrol jumlah kehalusan dengan pengaturan ukuran bin. (Break point dapat dispesifikasikan eksplisitnya, dengan argumen break). Dan sangat perlu dalam percobaan dengan level kehalusan. Dengan histrogram kita sebenarnya bisa mencoba banyak binwidth : kita bisa menemukan fitur yang besar dari data yang muncul pada binwidth yang besar ketika fitur yang baik memerlukan kelebaran yang sangat sempit. Di figur 2.11, kami mencoba dengan tiga nilai pada binwidth : 1.0, 0.1 dan 0.01. Ini hanya pada bisa dilihat di plot dengan binwidth paling (kanan) kecil yang bisa kita lihat dari pergoresan yang kita catat di awal penyebaran plot, yaitu hasil nya mendekati angka “baik” pada karat.

Kode fullnya adalah :            

• qplot(carat, data = diamonds, geom = “histogram”, binwidth = 1, xlim = c(0,3))            

• qplot(carat, data = diamonds, geom = “histogram”, binwidth = 0,1, xlim = c(0,3))            

• qplot(carat, data = diamonds, geom = “histogram”, binwidth = 0.01, xlim = c(0,3))

Pemetaan adalah sebuah kategori variabel untuk sebuah estetika yang otomatis akan terpisah pada geom dengan variabelnya, jadi ini adalah perintah instruksi qplot() untuk menggambar plot densitas dan histogram pada setiap level warna berlian. Plot densitas lebih nampak pada awal karena terlihat mudah untuk dibaca dan dibandingkan pada variasi kurva. Bagaimanapun, ini lebih sulit untuk dapat mengerti tepatnya, apa itu plot densitas yang terlihat.dan juga plot densitas membuat beberapa asumsi yang mungkin tidak benar pada data kita ; contohnya itu takterbatas kontinu dan halus.

4.2.3 Time Series with line and Path Plots

Garis dan jalur plot biasanya digunakan di waku tertentu. Garis plot mengikuti pada poin dari kiri ke kanan dimana ketika jalur plot bergabung dengan mereka sebagai tujuan, dan mereka muncul dalam set data (sebuah plot garis merupakan sebuah jalur plot pada data yang disortir dengan nilai x). Garis plot biasanya dapat muncul pada sumbu x, kemunculannya dapat terlihat ketika bagaimana satu variabel bisa berubah setiap waktu. Jalur plot menunjukkan bagaimana dua variabel punya kecocokan. Bergantinya setiap waktu, dengan waktu yang dikodekan dengan cara poin-poin yang disatukan.

Karena tidak terdapat waktu variabel di dalam data berlian, maka kita menggunakan data set yang ekonomik, yaitu terdapat dilihat dari data ekonimik yang ada pada pengukuran US pada 40 tahun terakhir. Menunjukkan dua plot dari waktu yang tidak terpakai keduanya memproduksi dengan geom = “line”. Yang pertama menunjukkan tidak terpakainya ratio dan yang kedua menunjukkan angka median pada minggu yang dibiarkan tidak terpakai. Kita pun sudah dapat melihat beberapa perbedaan di dua variabel, terlebih lagi di puncak terakhir dimana presentasi yang dibiarkan tidak terpakai kurang dari yang ada di puncak, tetapi panjang yang dianggurkan lebih tinggi.            

• qplot(date, unemploy / pop, data = economics, geom = “line”)            

• qplot(date, uempmed, data = economics, geom = “line”)

Untuk memeriksa hubungan ini di rincian yang lebih tinggi, kita akan menggambar kedua waktu pada plot yang sama. Kita seharusnya bisa menggambar plot yang sebaran dari ratio angguran v. dengan panjang yang dianggurkan, tetapi kita tidak dapat melihat lagi evolusinya setiap waktu. Solusinya adalah menggabungkan poin ajasensi yang tepat dengan segmen garis, dan membentuk sebuah jalur plot di bawah ratio plot yang dianggurkan kita vs. panjang yang dianggurkan dan digabungkan ke observasi individual dengan sebuah jalur. Karena banyak garis yang bersebrangan, kesejajaran di dalam alur waktunya tidak mudah untuk dilihat pada plot yang pertama. Dan di plot yang kedua kita masukkan warna ke garis untuk memudahkan melihat waktu tujuannya.            

• year <- function(x) as.POSIXlt(x)$year + 1900 qplot(unemploy / pop, uempmed,            

• data = economics, geom = c(“point”, “path”))            

• qplot(unemploy / pop, uempmed, data = economics, geom = “path”, colour = year (date)) + scale_area()

Kita dapat melihat persen yang dianggurkan dan panjang yang dianggurkan sangat tinggi hubunganya. Meskipun di tahun-tahunnya sebelumnya panjang yang dianggurkan relatif meningkat ke ratio yang dianggurkannya. Dengan data longitudinal, Anda akan ingin sering melihat beberapa kali pada setiap plotnya, setiap seri memperlihatkan satu individual. Untuk melakukan ini dengan qplot(). Anda membutuhkan estetika group peta untuk menkode anggota group di setiap observasi.

4.3 Penskalaan

Penskalaan diibagi dalam empat kelompok terpisah:

1. Skala posisi, digunakan untuk memetakan terus menerus, variabel diskrit dan tanggal-waktu ke daerah merencanakan dan membangun sumbu yang sesuai.

2. Skala Warna, digunakan untuk memetakan terus menerus, variabel kontinu dan diskrit untuk warna.

3. Skala Manual, digunakan untuk memetakan variabel diskrit untuk pilihan anda ukuran simbol, jenis garis, bentuk atau warna, dan untuk menciptakan legenda sesuai.

4. Skala identitas, digunakan untuk merencanakan nilai variabel langsung ke estetika daripada pemetaan mereka.

Bagian ini menjelaskan setiap kelompok secara lebih rinci. Rincian yang tepat tentang individu timbangan dapat ditemukan dalam dokumentasi, dalam R Argumen berikut yang umum untuk semua skala:

• Nama: menetapkan label yang akan muncul pada sumbu atau legenda. Karena tweaking label ini adalah suatu tugas bersama, ada tiga fungsi pembantu untuk menghemat mengetik: xlab (), ylab () dan laboratorium ().            

p <- qplot(cty, hwy, data = mpg, colour = displ)p            

p + scale_x_continuous("City mpg")            

p + xlab("City mpg")            

p + ylab("Highway mpg")            

p + labs(x = "City mpg", y = "Highway", colour ="Displacement")            

p + xlab(expression(frac(miles, gallon))) .

• Batas: perbaikan domain skala. Timbangan terus menerus mengambil vektor numerik panjang dua, sisik diskrit mengambil vektor karakter. Jika batas yang ditetapkan, tidak ada pelatihan data akan dilakukan. Batas berguna untuk menghapus data yang tidak ingin ditampilkan dalam komplotan (yaitu, menetapkan batas yang lebih kecil dari berbagai data), dan untuk memastikan bahwa batas konsisten di beberapa plot dimaksudkan untuk dibandingkan (yaitu, menetapkan batas yang lebih besar atau lebih kecil dari beberapa rentang default). Setiap nilai tidak dalam domain skala tersebut akan dibuang: untuk pengamatan untuk dimasukkan dalam plot, masing-masing estetika harus berada dalam domain masing-masing skala. Mengabaikan ini terjadi sebelum statistik dihitung.

• Istirahat dan label: istirahat kontrol nilai muncul pada sumbu atau legenda, yaitu nilai-nilai tanda centang yang muncul pada sumbu atau bagaimana skala kontinyu tersegmentasi dalam legenda. Label menentukan label yang akan muncul di breakpoints. Jika label diatur, maka harus menentukan istirahat, sehingga kedua dapat dicocokkan dengan benar. Untuk membedakan istirahat dari batas, bahwa istirahat mempengaruhi apa yang muncul pada sumbu dan legenda, sementara batas mempengaruhi apa yang muncul di plot. Kolom pertama menggunakan pengaturan default untuk kedua istirahat dan batas, yang batas = c (4, 8) dan istirahat = 4: 8. Di kolom tengah wilayah diplot adalah sama, tetapi posisi centang dan label telah bergeser. Di kolom kanan adalah batas yang telah didefinisikan ulang, begitu banyak data sekarang berada di luar wilayah merencanakan.            

p <- qplot(cyl, wt, data = mtcars)            

p            

p + scale_x_continuous(breaks = c(5.5, 6.5))            

p + scale_x_continuous(limits = c(5.5, 6.5))           

p <- qplot(wt, cyl, data = mtcars, colour = cyl)            

p            

p + scale_colour_gradient(breaks = c(5.5, 6.5))            

p + scale_colour_gradient(limits = c(5.5, 6.5))

Perbedaan antara istirahat dan batas. (Kiri) Plot standar dengan batas = c (4, 8), istirahat = 4: 8, (tengah) istirahat = c (5.5,6.5) dan (kanan) batas = c (5.5,6.5). Ect pada sumbu x (atas) dan legenda warna (bawah)

• Formatter: jika tidak ada label yang ditentukan formatter akan dipanggil pada setiap istirahat untuk menghasilkan label. Formatters berguna untuk skala kontinu koma, persen, dolar dan ilmiah, dan untuk skala diskrit disingkat.

BAB 5

Penutup

FacetGrid merupakan obyek yang menghubungkan Pandas DataFrame untuk bentuk dari matplotlib dengan struktur tertentu(pada seaborn). Secara khusus, FacetGrid digunakan untuk menggambar plot dengan beberapa Axes dimana setiap Axes menunjukkan hubungan yang sama dikondisikan pada tingkat yang berbeda dari beberapa variabel.

Seaborn merupakan perpustakaan visualisasi Python berdasarkan matplotlib. Ini menyediakan antarmuka tingkat tinggi untuk menggambar grafik statistik yang menarik. Jadi Facetgrid dapat digunakan pada kedua aplikasi ini untuk membuat suatu pemodelan grafik dengan bahasa pemrograman python.

Ggplot merupakan paket yang sangat unpythonic untuk melakukan apa yang ggplot2 tidak. Tujuan dari paket ini adalah untuk meniru ggplot2 API. Hal ini membuat super mudah bagi orang-orang datang dari R digunakan, dan mencegah Anda dari keharusan untuk kembali belajar bagaimana untuk merencanakan hal-hal.

Demikian buku yang kami buat, semoga bermanfaat dan menambah pengetahuan para pembaca. Kami mohon maaf apabila ada kesalahan ejaan dalam penulisan kata dan kalimat, serta pemilihan kata yang kurang tepat. Dan kami juga sangat mengharapkan saran dan kritik para pembaca demi kesempurnaan buku ini. Terimakasih untuk semua bantuan dan dukungan sehingga buku ini dapat terselesaikan.

DAFTAR PUSTAKA

• Wickham, Hadley (March 2010). "A Layered Grammar of Graphics". Journal of Computational and Graphical Statistics 19 (1): 3–28

• Wickham, Hadley (July 2010). "ggplot2: Elegant Graphics for Data Analysis". Journal of Statistical Software 35 (1)

• Wilkinson, Leland (June 2011). "ggplot2: Elegant Graphics for Data Analysis by WICKHAM, H". Biometrics 67 (2): 678–679

• Smith, David. "Create beautiful statistical graphics with ggplot2". Revolutions. Revolution Analytics. Retrieved 11 July 2011

• http://learnr.wordpress.com/2009/08/26/ggplot2-version-of-figures-in-lattice-multivariate-data-visualization-with-r-final-part/

• https://github.com/yhat/ggplot/ (yhat. Retrieved 12 October 2014)

• http://stanford.edu/~mwaskom/software/seaborn/tutorial/axis_grids.html#subsetting-data-with-facetgrid

• http://stanford.edu/~mwaskom/software/seaborn/index.html http://stanford.edu/~mwaskom/software/seaborn/tutorial.html

• http://stanford.edu/~mwaskom/software/seaborn/tutorial.html http://docs.ggplot2.org/current/

• http://ggplot2.org

0 komentar:

Posting Komentar

 

winda febri Copyright © 2012 Design by Antonia Sundrani Vinte e poucos