


Hebat! Alat visualisasi data Python ini berkuasa!
Apr 15, 2023 am 09:28 AMDengan Altair, anda boleh meluangkan lebih banyak masa menumpukan pada data dan maksudnya, yang akan saya perincikan di bawah:
Contoh
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
Kaedah pemasangan
Altair memerlukan kebergantungan berikut:
- ciri panda
- IPython
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
Tiga operasi utama
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:
- Hantar data ke objek Carta, data boleh menjadi bingkai data Pandas atau arahkan ke json Atau dalam bentuk rentetan URL bagi fail csv.
- Pilih jenis visualisasi (cth. mark_circle, mark_line, dll.).
- pengekodan Fungsi pengekodan menentukan perkara yang hendak diplot dalam bingkai data tertentu. Oleh itu, apa sahaja yang kami tulis dalam fungsi pengekodan mesti dipautkan kepada bingkai data.
- Gunakan fungsi sifat untuk menentukan sifat tertentu graf.
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:
- transform_lookup: Cari harga daripada bingkai data harga.
- transform_filter: Tapis harga di bawah $20.
- transform_aggregate: Kumpulkan harga mengikut jenis pesanan dan kirakan min.
Kesimpulan
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!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah kelebihan dan kekurangan templat?

Google AI mengumumkan Gemini 1.5 Pro dan Gemma 2 untuk pembangun

Kongsi beberapa rangka kerja projek berkaitan AI dan LLM sumber terbuka .NET

Universiti Tsinghua dan sumber terbuka Zhipu AI GLM-4: melancarkan revolusi baharu dalam pemprosesan bahasa semula jadi

Bagaimana anda bertanya kepadanya Deepseek

Bagaimana untuk menyimpan fungsi menilai
