Dalam tutorial Visualisasi Data dengan Bokeh pertama kami, Anda telah mempelajari cara membangun visualisasi dari awal menggunakan glyph. Kini, Anda dapat memperluas konsep ini dan membuat plot dari berbagai struktur data seperti array dan dataframe. Dalam tutorial ini, Anda akan belajar cara memplot data dengan array NumPy, dataframe di Pandas, dan ColumnDataSource menggunakan Bokeh. ColumnDataSource adalah inti dari Bokeh, yang memungkinkan Anda berbagi data di beberapa plot dan widget.
Plot Bokeh dari Array NumPy
Membuat plot garis dari array NumPy
# Import packagesimport numpy as np
import random
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create an array
x_array = np.array([10,20,30,40,50,60])
y_array = np.array([50,60,70,80,90,100])# Create a line plot
plot = figure()
plot.line(x_array, y_array)# Output plot
show(plot)Didukung oleh
Membuat plot sebar dari array NumPy
# Import packagesimport numpy as np
import random
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create arrays
x_arr = np.array([10,11,12,13,14,15,16])
y_arr = np.array([17,18,19,20,21,22,23])# Create plot
plot = figure(title ="Scatter plot", x_axis_label ="Label name of x axis", y_axis_label ="Label name of y axis")
plot.circle(x_arr,y_arr, size =30, alpha =0.5)# show plot
show(plot)Didukung oleh
Ini menghasilkan grafik berikut:
Membuat Plot Menggunakan Dataframe Pandas
Memplot garis dengan dataframe Pandas
Data dalam contoh ini diperoleh dari Kaggle. Dataset ini berisi semua saham dalam indeks S&P 500 selama lima tahun hingga Desember 2018. File berisi tujuh kolom:
Date - tanggal hari dalam format yy-mm-dd
Open - harga pembukaan saham
High - harga tertinggi saham dalam sehari
Low - harga terendah saham dalam sehari
Close - harga penutupan saham pada hari itu
Volume - volume saham yang diperdagangkan pada hari itu
Name - nama ticker saham
Kita ingin melihat tren saham Google selama periode lima tahun. Pertama, kita memuat data menggunakan Pandas lalu memeriksa lima baris pertama dari dataframe Pandas.
# Import packagesimport pandas as pd
# Load data
df = pd.read_csv('all_stocks_5yr.csv')
df.head()Didukung oleh
# Focus on Google's stock
df_goog = df[df['Name']=='GOOG']# Convert date column to a time series
df_goog['date']= pd.to_datetime(df_goog['date'])
plot = figure(title="Pandas Line Plot", x_axis_type ='datetime', x_axis_label ='date', y_axis_label='Prices')
plot.line(x = df_goog['date'], y = df_goog['high'])# Output plot
show(plot)Didukung oleh
Pada bagan tersebut, kolom tanggal perlu dikonversi ke datetime agar tanggal dapat ditampilkan di sepanjang sumbu-x. Selain itu, fungsi line (glyph di Bokeh) digunakan untuk menghasilkan plot deret waktu untuk harga tertinggi Google.
Membuat plot sebar dari dataframe Pandas
Pada bagian ini, kita menggunakan data saham S&P 500 sumber terbuka yang tersedia di Kaggle. Dalam contoh ini, kita ingin melihat korelasi antara harga saham Google dan harga saham Apple. Anda dapat mempelajari lebih lanjut tentang korelasi di sini.
# Import required packages# Import packagesimport pandas as pd
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Load data
df = pd.read_csv('all_stocks_5yr.csv')# Select Google and Apple stock
df_goog = df[df['Name']=='GOOG']
df_apple = df[df['Name']=='AAPL']# Select only 'date' and 'high' columns for Google and Apple
df_goog = df_goog[['date','high']]
df_apple = df_apple[['date','high']]# Rename 'high' column to 'high_goog' and 'high_apple'
df_goog.rename(columns={'high':'high_goog'}, inplace=True)
df_apple.rename(columns={'high':'high_apple'}, inplace=True)
df_merged = pd.merge(df_goog, df_apple, how='inner', on='date')# See the first five rows
df_merged.head(5)Didukung oleh
Penggabungan memastikan bahwa harga harian saling berkorespondensi berdasarkan tanggal. Ini mengurangi masalah mengorelasikan harga dari tanggal yang berbeda, karena hal tersebut akan menghasilkan inferensi statistik yang keliru.
# Create scatter plot
plot = figure(title="Pandas Scatter Plot", x_axis_label ="Apple high prices", y_axis_label="Google high prices")
plot.circle(x = df_merged['high_apple'], y = df_merged['high_goog'],color ='red', size =10, alpha =0.8)# Output the plot
show(plot)Didukung oleh
Lingkaran menunjukkan keterkaitan antara harga tertinggi Apple dan Google. Secara umum terdapat korelasi positif antara harga saham Google dan Apple.
Membuat Plot Bokeh dari ColumnDataSource
Tujuan ColumnDataSource adalah memungkinkan Anda membuat berbagai plot menggunakan data yang sama. Singkatnya, ini memungkinkan Anda membangun landasan data untuk dipanggil di banyak plot dan analisis. Ini akan menghemat waktu, karena Anda tidak perlu memuat data berkali-kali di Jupyter Notebook.
ColumnDataSource mirip dengan kamus Python, di mana nilai data dalam sebuah kolom memiliki nama string kunci untuk kolom tersebut.
Membuat plot garis menggunakan ColumnDataSource
# Import packagesfrom bokeh.io import output_file, show
from bokeh.plotting import figure, ColumnDataSource
# Create the ColumnDataSource object
df_goog['date']= pd.to_datetime(df_goog['date'])
data = ColumnDataSource(df_goog)# Create time series plot
plot = figure(x_axis_type='datetime',
title='GOOG high prices ts plot',
x_axis_label ="Date",
y_axis_label ="Prices in $")
plot.line(x='date', y ='high_goog', source = data, color ='green')
show(plot)Didukung oleh
Plot menunjukkan bagaimana harga tertinggi Google berkembang selama periode 5 tahun dengan garis yang menunjukkan setiap titik harga saham.
Untuk membuat plot ini, kita memasukkan seluruh dataframe saham Google ke dalam fungsi ColumnDataSource dan menyimpannya sebagai variabel bernama data.
Kemudian, kita menggunakan argumen source untuk memasukkan data ini ke dalam fungsi plot. Ini memungkinkan penggunaan nama kolom secara langsung saat membuat plot alih-alih berulang kali memanggil dataframe.
Terakhir, kita menggunakan fungsi line untuk menghasilkan garis hijau yang merepresentasikan titik-titik data.
Membuat plot sebar menggunakan ColumnDataSource
Pada kode ini, kita memasukkan seluruh dataframe saham Google ke dalam ColumnDataSource (seperti pada contoh plot garis). Dataframe disimpan ke dalam ColumnDataSource sebagai variabel bernama data. Kita terlebih dahulu membuat plot garis dengan langsung memanggil nama kolom. Terakhir, kita menggunakan fungsi diamond untuk menghasilkan bentuk belah ketupat berwarna merah yang merepresentasikan tiap titik data.
# Import packagesfrom bokeh.io import output_file, show
from bokeh.plotting import figure, ColumnDataSource
# Create the ColumnDataSource object
df_goog['date']= pd.to_datetime(df_goog['date'])
data = ColumnDataSource(df_goog)# Create time series plot
plot = figure(x_axis_type='datetime',
title='GOOG high prices ts plot',
x_axis_label ="Date",
y_axis_label ="Prices in $")
plot.line(x='date', y ='high_goog', source = data, color ='green')
plot.diamond(x='date', y ='high_goog', source = data, color ='red')
show(plot)Didukung oleh
Plot menunjukkan perkembangan saham Google selama periode 5 tahun dengan belah ketupat merah yang menunjukkan setiap titik harga saham.
Kesimpulan
Tutorial ini memperkenalkan struktur data paling umum yang kemungkinan akan Anda temui di Python dan bagaimana Anda dapat menggunakannya untuk menghidupkan data Anda. Meskipun Bokeh bukan satu-satunya opsi untuk visualisasi Python, ia membedakan diri dari Matplotlib atau Seaborn melalui kemudahan penggunaan dan kemampuan interaktifnya. Pada tutorial berikutnya, Anda akan mendapatkan pengalaman langsung menggunakan tata letak untuk membuat visualisasi yang efektif dan interaktif. Jika Anda ingin mendalami semua kemungkinan visualisasi data yang ditawarkan oleh Bokeh, lihat kursus DataCamp Interactive Data Visualization with Bokeh.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dalam tutorial Visualisasi Data dengan Bokeh pertama kami, Anda telah mempelajari cara membangun visualisasi dari awal menggunakan glyph. Kini, Anda dapat memperluas konsep ini dan membuat plot dari berbagai struktur data seperti array dan dataframe. Dalam tutorial ini, Anda akan belajar cara memplot data dengan array NumPy, dataframe di Pandas, dan ColumnDataSource menggunakan Bokeh. ColumnDataSource adalah inti dari Bokeh, yang memungkinkan Anda berbagi data di beberapa plot dan widget.
Plot Bokeh dari Array NumPy
Membuat plot garis dari array NumPy
Membuat plot sebar dari array NumPy
Ini menghasilkan grafik berikut:
Membuat Plot Menggunakan Dataframe Pandas
Memplot garis dengan dataframe Pandas
Data dalam contoh ini diperoleh dari Kaggle. Dataset ini berisi semua saham dalam indeks S&P 500 selama lima tahun hingga Desember 2018. File berisi tujuh kolom:
Kita ingin melihat tren saham Google selama periode lima tahun. Pertama, kita memuat data menggunakan Pandas lalu memeriksa lima baris pertama dari dataframe Pandas.
Pada bagan tersebut, kolom tanggal perlu dikonversi ke datetime agar tanggal dapat ditampilkan di sepanjang sumbu-x. Selain itu, fungsi line (glyph di Bokeh) digunakan untuk menghasilkan plot deret waktu untuk harga tertinggi Google.
Membuat plot sebar dari dataframe Pandas
Pada bagian ini, kita menggunakan data saham S&P 500 sumber terbuka yang tersedia di Kaggle. Dalam contoh ini, kita ingin melihat korelasi antara harga saham Google dan harga saham Apple. Anda dapat mempelajari lebih lanjut tentang korelasi di sini.
Penggabungan memastikan bahwa harga harian saling berkorespondensi berdasarkan tanggal. Ini mengurangi masalah mengorelasikan harga dari tanggal yang berbeda, karena hal tersebut akan menghasilkan inferensi statistik yang keliru.
Lingkaran menunjukkan keterkaitan antara harga tertinggi Apple dan Google. Secara umum terdapat korelasi positif antara harga saham Google dan Apple.
Membuat Plot Bokeh dari ColumnDataSource
Tujuan ColumnDataSource adalah memungkinkan Anda membuat berbagai plot menggunakan data yang sama. Singkatnya, ini memungkinkan Anda membangun landasan data untuk dipanggil di banyak plot dan analisis. Ini akan menghemat waktu, karena Anda tidak perlu memuat data berkali-kali di Jupyter Notebook.
ColumnDataSource mirip dengan kamus Python, di mana nilai data dalam sebuah kolom memiliki nama string kunci untuk kolom tersebut.
Membuat plot garis menggunakan ColumnDataSource
Plot menunjukkan bagaimana harga tertinggi Google berkembang selama periode 5 tahun dengan garis yang menunjukkan setiap titik harga saham.
Untuk membuat plot ini, kita memasukkan seluruh dataframe saham Google ke dalam fungsi ColumnDataSource dan menyimpannya sebagai variabel bernama data.
Kemudian, kita menggunakan argumen source untuk memasukkan data ini ke dalam fungsi plot. Ini memungkinkan penggunaan nama kolom secara langsung saat membuat plot alih-alih berulang kali memanggil dataframe.
Terakhir, kita menggunakan fungsi line untuk menghasilkan garis hijau yang merepresentasikan titik-titik data.
Membuat plot sebar menggunakan ColumnDataSource
Pada kode ini, kita memasukkan seluruh dataframe saham Google ke dalam ColumnDataSource (seperti pada contoh plot garis). Dataframe disimpan ke dalam ColumnDataSource sebagai variabel bernama data. Kita terlebih dahulu membuat plot garis dengan langsung memanggil nama kolom. Terakhir, kita menggunakan fungsi diamond untuk menghasilkan bentuk belah ketupat berwarna merah yang merepresentasikan tiap titik data.
Plot menunjukkan perkembangan saham Google selama periode 5 tahun dengan belah ketupat merah yang menunjukkan setiap titik harga saham.
Kesimpulan
Tutorial ini memperkenalkan struktur data paling umum yang kemungkinan akan Anda temui di Python dan bagaimana Anda dapat menggunakannya untuk menghidupkan data Anda. Meskipun Bokeh bukan satu-satunya opsi untuk visualisasi Python, ia membedakan diri dari Matplotlib atau Seaborn melalui kemudahan penggunaan dan kemampuan interaktifnya. Pada tutorial berikutnya, Anda akan mendapatkan pengalaman langsung menggunakan tata letak untuk membuat visualisasi yang efektif dan interaktif. Jika Anda ingin mendalami semua kemungkinan visualisasi data yang ditawarkan oleh Bokeh, lihat kursus DataCamp Interactive Data Visualization with Bokeh.