Plotly dengan Panda dan Manset
Pandas adalah pustaka yang sangat populer di Python untuk analisis data. Ia juga memiliki dukungan fungsi plot sendiri. Namun, plot Panda tidak memberikan interaktivitas dalam visualisasi. Untungnya, plot interaktif dan dinamis dari plotly dapat dibangun menggunakanPandas dataframe benda.
Kami mulai dengan membangun Dataframe dari objek daftar sederhana.
data = [['Ravi',21,67],['Kiran',24,61],['Anita',18,46],['Smita',20,78],['Sunil',17,90]]
df = pd.DataFrame(data,columns = ['name','age','marks'],dtype = float)
Kolom dataframe digunakan sebagai nilai data untuk x dan yproperti jejak objek grafik. Di sini, kami akan membuat jejak batang menggunakanname dan marks kolom.
trace = go.Bar(x = df.name, y = df.marks)
fig = go.Figure(data = [trace])
iplot(fig)
Plot batang sederhana akan ditampilkan di notebook Jupyter seperti di bawah ini -
Plotly dibangun di atas d3.js dan secara khusus perpustakaan charting yang dapat digunakan secara langsung dengan Pandas dataframes menggunakan pustaka lain bernama Cufflinks.
Jika belum tersedia, instal paket manset dengan menggunakan manajer paket favorit Anda seperti pip seperti yang diberikan di bawah ini -
pip install cufflinks
or
conda install -c conda-forge cufflinks-py
Pertama, impor manset bersama dengan pustaka lain seperti Pandas dan numpy yang dapat mengkonfigurasinya untuk penggunaan offline.
import cufflinks as cf
cf.go_offline()
Sekarang, Anda bisa langsung menggunakan Pandas dataframe untuk menampilkan berbagai macam plot tanpa harus menggunakan objek trace dan gambar dari graph_objs module seperti yang telah kami lakukan sebelumnya.
df.iplot(kind = 'bar', x = 'name', y = 'marks')
Plot batang, sangat mirip dengan yang sebelumnya akan ditampilkan seperti yang diberikan di bawah ini -
Dataframe panda dari database
Alih-alih menggunakan daftar Python untuk membangun kerangka data, itu dapat diisi oleh data di berbagai jenis database. Misalnya, data dari file CSV, tabel database SQLite, atau tabel database mysql dapat diambil ke dalam bingkai data Pandas, yang pada akhirnya dikenakan grafik plot menggunakanFigure object atau Cufflinks interface.
Untuk mengambil data dari CSV file, kita bisa gunakan read_csv() fungsi dari perpustakaan Panda.
import pandas as pd
df = pd.read_csv('sample-data.csv')
Jika data tersedia di SQLite database table, itu bisa diambil menggunakan SQLAlchemy library sebagai berikut -
import pandas as pd
from sqlalchemy import create_engine
disk_engine = create_engine('sqlite:///mydb.db')
df = pd.read_sql_query('SELECT name,age,marks', disk_engine)
Di sisi lain, data dari MySQL database diambil dalam bingkai data Pandas sebagai berikut -
import pymysql
import pandas as pd
conn = pymysql.connect(host = "localhost", user = "root", passwd = "xxxx", db = "mydb")
cursor = conn.cursor()
cursor.execute('select name,age,marks')
rows = cursor.fetchall()
df = pd.DataFrame( [[ij for ij in i] for i in rows] )
df.rename(columns = {0: 'Name', 1: 'age', 2: 'marks'}, inplace = True)