Rumah >pembangunan bahagian belakang >Tutorial Python >Hebat! Alat visualisasi data Python ini berkuasa!
Dengan Altair, anda boleh meluangkan lebih banyak masa menumpukan pada data dan maksudnya, yang akan saya perincikan di bawah:
Berikut ialah Contoh penggunaan Altair untuk memvisualisasikan dan memaparkan set data dengan pantas dalam JupyterLab:
import altair as alt # load a simple dataset as a pandas DataFrame from vega_datasets import data cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', )
Salah satu ciri unik Altair yang diperoleh daripada Vega-Lite ialah sintaks deklaratif, yang Ia bukan sahaja visual tetapi juga interaktif. Dengan beberapa pengubahsuaian pada contoh di atas, kita boleh mencipta histogram terpaut yang ditapis berdasarkan pemilihan plot taburan.
import altair as alt from vega_datasets import data source = data.cars() brush = alt.selection(type='interval') points = alt.Chart(source).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color=alt.condition(brush, 'Origin', alt.value('lightgray')) ).add_selection( brush ) bars = alt.Chart(source).mark_bar().encode( y='Origin', color='Origin', x='count(Origin)' ).transform_filter( brush ) points & bars
Altair memerlukan kebergantungan berikut:
Jika anda telah mengklonkan repositori, jalankan arahan berikut dari akar repositori:
pip install -e .[dev]
Jika anda tidak mahu mengklon repositori, anda boleh Gunakan arahan berikut untuk memasang:
pip install git+https://github.com/altair-viz/altair
Untuk butiran lanjut, anda boleh melihat pautan github:
https://github.com/altair-viz/altair
Connect Seterusnya, saya akan menerangkan secara terperinci cara Altair mencipta visualisasi operasi penapisan, pengumpulan dan penggabungan yang boleh digunakan sebagai sebahagian daripada proses analisis data penerokaan.
Kami membina dua bingkai data data simulasi. Yang pertama ialah tempahan restoran, dan yang kedua ialah harga barang dalam pesanan restoran.
# import libraries import numpy as np import pandas as pd import altair as alt import random # mock data orders = pd.DataFrame({ "order_id": np.arange(1,101), "item": np.random.randint(1, 50, size=100), "qty": np.random.randint(1, 10, size=100), "tip": (np.random.random(100) * 10).round(2) }) prices = pd.DataFrame({ "item": np.arange(1,51), "price": (np.random.random(50) * 50).round(2) }) order_type = ["lunch", "dinner"] * 50 random.shuffle(order_type) orders["order_type"] = order_type
Pertama, kami mencipta rajah ringkas kepada struktur sintaks Altair.
alt.Chart(orders).mark_circle(size=50).encode( x="qty", y="tip", color="order_type" ).properties( title = "Tip vs Quantity" )
Sintaks asas Altair empat langkah:
Pertimbangkan situasi di mana kita perlu mencipta plot taburan nilai pirce dan tip, yang berada dalam bingkai data yang berbeza. Satu pilihan ialah menggabungkan dua bingkai data dan menggunakan dua lajur ini dalam plot berselerak.
Altair menyediakan kaedah yang lebih praktikal yang membolehkan mencari lajur dalam bingkai data lain, serupa dengan fungsi gabungan Pandas.
alt.Chart(orders).mark_circle(size=50).encode( x="tip", y="price:Q", color="order_type" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).properties( title = "Price vs Tip" )
Fungsi transform_lookup adalah serupa dengan fungsi gabungan Pandas. Lajur (iaitu baris) yang digunakan untuk memadankan pemerhatian dihantar ke parameter carian. Parameter medan digunakan untuk memilih lajur yang diperlukan daripada bingkai data lain.
Kami juga boleh menyepadukan komponen penapis ke dalam plot, membolehkan kami memplot titik data dengan harga melebihi $10.
alt.Chart(orders).mark_circle(size=50).encode( x="tip", y="price:Q", color="order_type" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).transform_filter( alt.FieldGTPredicate(field='price', gt=10) ).properties( title = "Price vs Tip" )
Fungsi transform_filter digunakan untuk penapisan. FieldGTPredicate mengendalikan keadaan "lebih besar daripada".
Selain menapis dan menggabungkan, Altair juga membenarkan titik data dikumpulkan sebelum memplot. Sebagai contoh, kita boleh membuat carta bar yang memaparkan harga purata item untuk setiap jenis pesanan. Selain itu, kami boleh melakukan ini untuk item berharga di bawah $20.
alt.Chart(orders).mark_bar().encode( y="order_type", x="avg_price:Q" ).transform_lookup( lookup="item", from_=alt.LookupData(data=prices, key="item", fields=["price"]) ).transform_filter( alt.FieldLTPredicate(field='price', lt=20) ).transform_aggregate( avg_price = "mean(price)", groupby = ["order_type"] ).properties( height=200, width=300 )
Mari jelaskan setiap langkah secara terperinci:
Perbezaan antara Altair dan perpustakaan visualisasi biasa yang lain ialah ia boleh menyepadukan komponen analisis data dengan lancar ke dalam visualisasi, menjadikannya alat Explore data yang sangat praktikal.
Penapisan, penggabungan dan pengumpulan adalah penting untuk proses analisis data penerokaan. Altair membolehkan anda melakukan semua operasi ini semasa membuat visualisasi data. Dalam pengertian ini, Altair juga boleh dianggap sebagai alat analisis data. Jika anda berminat, cubalah sekarang.
Atas ialah kandungan terperinci Hebat! Alat visualisasi data Python ini berkuasa!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!