Dapatkah saya memplot grafik dengan python?

"Bagaimana cara membuat plot dengan Python?" . Matplotlib adalah satu-satunya cara. Saat ini, Python adalah bahasa ilmu data, dan ada lebih banyak pilihan. Apa yang harus Anda gunakan?

Lebih Banyak Sumber Daya Python

  • Apa itu IDE?
  • Contekan. Piton 3. 7 untuk pemula
  • Kerangka GUI Python teratas
  • Unduh. 7 pustaka PyPI penting
  • Pengembang Topi Merah
  • Konten Python terbaru

Panduan ini akan membantu Anda memutuskan. Ini akan menunjukkan kepada Anda bagaimana menggunakan masing-masing dari empat pustaka plot Python paling populer—Matplotlib, Seaborn, Plotly, dan Bokeh—ditambah beberapa pendatang baru yang hebat untuk dipertimbangkan. Altair, dengan API ekspresifnya, dan Pygal, dengan keluaran SVG yang indah. Saya juga akan melihat API perencanaan yang sangat nyaman yang disediakan oleh panda

Untuk setiap perpustakaan, saya telah menyertakan cuplikan kode sumber, serta contoh berbasis web lengkap menggunakan Anvil, platform kami untuk membuat aplikasi web hanya dengan Python. Mari lihat

Contoh petak

Setiap perpustakaan mengambil pendekatan yang sedikit berbeda untuk memplot data. Untuk membandingkannya, saya akan membuat plot yang sama dengan masing-masing perpustakaan dan menunjukkan kode sumbernya. Untuk data contoh saya, saya memilih bagan batang hasil pemilu Inggris yang dikelompokkan ini sejak 1966

Dapatkah saya memplot grafik dengan python?

Saya mengumpulkan dataset sejarah pemilu Inggris dari Wikipedia. jumlah kursi di parlemen Inggris yang dimenangkan oleh partai Konservatif, Buruh, dan Liberal (didefinisikan secara luas) dalam setiap pemilihan dari tahun 1966 hingga 2019, ditambah jumlah kursi yang dimenangkan oleh "lainnya". " Anda dapat mengunduhnya sebagai file CSV

Matplotlib

Matplotlib adalah pustaka perencanaan Python tertua, dan masih yang paling populer. Itu dibuat pada tahun 2003 sebagai bagian dari SciPy Stack, perpustakaan komputasi ilmiah open source yang mirip dengan Matlab

Matplotlib memberi Anda kontrol yang tepat atas plot Anda — misalnya, Anda dapat menentukan posisi x individual dari setiap batang di petak batang Anda. Berikut adalah kode untuk membuat grafik ini (yang dapat Anda jalankan di sini)

    import matplotlib.pyplot as plt
    import numpy as np
    from votes import wide as df

    # Initialise a figure. subplots() with no args gives one plot.
    fig, ax = plt.subplots()

    # A little data preparation
    years = df['year']
    x = np.arange(len(years))

    # Plot each bar plot. Note: manually calculating the 'dodges' of the bars
    ax.bar(x - 3*width/2, df['conservative'], width, label='Conservative', color='#0343df')
    ax.bar(x - width/2, df['labour'], width, label='Labour', color='#e50000')
    ax.bar(x + width/2, df['liberal'], width, label='Liberal', color='#ffff14')
    ax.bar(x + 3*width/2, df['others'], width, label='Others', color='#929591')

    # Customise some display properties
    ax.set_ylabel('Seats')
    ax.set_title('UK election results')
    ax.set_xticks(x)    # This ensures we have one tick per year, otherwise we get fewer
    ax.set_xticklabels(years.astype(str).values, rotation='vertical')
    ax.legend()

    # Ask Matplotlib to show the plot
    plt.show()

Dan inilah hasil pemilihan yang diplot di Matplotlib

Dapatkah saya memplot grafik dengan python?

 

Yg keturunan dr laut

Seaborn adalah lapisan abstraksi di atas Matplotlib;

Itu tidak berkompromi pada kekuatan. Seaborn memberikan jalan keluar untuk mengakses objek Matplotlib yang mendasarinya, sehingga Anda masih memiliki kendali penuh

Kode Seaborn lebih sederhana daripada Matplotlib mentah (dapat dijalankan di sini)

    import seaborn as sns
    from votes import long as df

    # Some boilerplate to initialise things
    sns.set()
    plt.figure()

    # This is where the actual plot gets made
    ax = sns.barplot(data=df, x="year", y="seats", hue="party", palette=['blue', 'red', 'yellow', 'grey'], saturation=0.6)

    # Customise some display properties
    ax.set_title('UK election results')
    ax.grid(color='#cccccc')
    ax.set_ylabel('Seats')
    ax.set_xlabel(None)
    ax.set_xticklabels(df["year"].unique().astype(str), rotation='vertical')

    # Ask Matplotlib to show it
    plt.show()
_

Dan menghasilkan bagan ini

Dapatkah saya memplot grafik dengan python?

Secara plot

Plotly adalah ekosistem plot yang mencakup pustaka plot Python. Ini memiliki tiga antarmuka yang berbeda

  • Antarmuka berorientasi objek
  • Antarmuka penting yang memungkinkan Anda menentukan plot Anda menggunakan struktur data seperti JSON
  • Antarmuka tingkat tinggi yang mirip dengan Seaborn disebut Plotly Express

Plot plot dirancang untuk disematkan di aplikasi web. Pada intinya, Plotly sebenarnya adalah pustaka JavaScript. Ini menggunakan D3 dan tumpukan. gl untuk menggambar plot

Anda dapat membuat pustaka Plotly dalam bahasa lain dengan meneruskan JSON ke pustaka JavaScript. Pustaka Python dan R resmi melakukan hal itu. Di Anvil, kami mem-porting Python Plotly API untuk dijalankan di browser web

Ini kode sumber di Plotly (yang bisa Anda jalankan di sini)

    import plotly.graph_objects as go
    from votes import wide as df

    #  Get a convenient list of x-values
    years = df['year']
    x = list(range(len(years)))

    # Specify the plots
    bar_plots = [
        go.Bar(x=x, y=df['conservative'], name='Conservative', marker=go.bar.Marker(color='#0343df')),
        go.Bar(x=x, y=df['labour'], name='Labour', marker=go.bar.Marker(color='#e50000')),
        go.Bar(x=x, y=df['liberal'], name='Liberal', marker=go.bar.Marker(color='#ffff14')),
        go.Bar(x=x, y=df['others'], name='Others', marker=go.bar.Marker(color='#929591')),
    ]

    # Customise some display properties
    layout = go.Layout(
        title=go.layout.Title(text="Election results", x=0.5),
        yaxis_title="Seats",
        xaxis_tickmode="array",
        xaxis_tickvals=list(range(27)),
        xaxis_ticktext=tuple(df['year'].values),
    )

    # Make the multi-bar plot
    fig = go.Figure(data=bar_plots, layout=layout)

    # Tell Plotly to render it
    fig.show()

Dan plot hasil pemilu

Dapatkah saya memplot grafik dengan python?

Bokeh

Bokeh (diucapkan "BOE-kay") berspesialisasi dalam membangun plot interaktif, jadi contoh standar ini tidak menampilkannya dengan sebaik-baiknya. Seperti Plotly, plot Bokeh dirancang untuk disematkan di aplikasi web;

Ini kode di Bokeh (yang bisa Anda jalankan di sini)

    from bokeh.io import show, output_file
    from bokeh.models import ColumnDataSource, FactorRange, HoverTool
    from bokeh.plotting import figure
    from bokeh.transform import factor_cmap
    from votes import long as df

    # Specify a file to write the plot to
    output_file("elections.html")

    # Tuples of groups (year, party)
    x = [(str(r[1]['year']), r[1]['party']) for r in df.iterrows()]
    y = df['seats']

    # Bokeh wraps your data in its own objects to support interactivity
    source = ColumnDataSource(data=dict(x=x, y=y))

    # Create a colourmap
    cmap = {
        'Conservative': '#0343df',
        'Labour': '#e50000',
        'Liberal': '#ffff14',
        'Others': '#929591',
    }
    fill_color = factor_cmap('x', palette=list(cmap.values()), factors=list(cmap.keys()), start=1, end=2)

    # Make the plot
    p = figure(x_range=FactorRange(*x), width=1200, title="Election results")
    p.vbar(x='x', top='y', width=0.9, source=source, fill_color=fill_color, line_color=fill_color)

    # Customise some display properties
    p.y_range.start = 0
    p.x_range.range_padding = 0.1
    p.yaxis.axis_label = 'Seats'
    p.xaxis.major_label_orientation = 1
    p.xgrid.grid_line_color = None

Dan plotnya

Dapatkah saya memplot grafik dengan python?

Altair

Altair didasarkan pada bahasa plot deklaratif (atau "tata bahasa visualisasi") yang disebut Vega. Ini berarti ini adalah API yang dipikirkan dengan matang yang menskalakan dengan baik untuk plot yang kompleks, menyelamatkan Anda dari tersesat di neraka bersarang untuk loop

Seperti halnya Bokeh, Altair menampilkan plotnya sebagai file HTML. Ini kodenya (yang bisa Anda jalankan di sini)

    import altair as alt
    from votes import long as df

    # Set up the colourmap
    cmap = {
        'Conservative': '#0343df',
        'Labour': '#e50000',
        'Liberal': '#ffff14',
        'Others': '#929591',
    }

    # Cast years to strings
    df['year'] = df['year'].astype(str)

    # Here's where we make the plot
    chart = alt.Chart(df).mark_bar().encode(
        x=alt.X('party', title=None),
        y='seats',
        column=alt.Column('year', sort=list(df['year']), title=None),
        color=alt.Color('party', scale=alt.Scale(domain=list(cmap.keys()), range=list(cmap.values())))
    )

    # Save it as an HTML file.
    chart.save('altair-elections.html')
_

Dan grafik yang dihasilkan

Dapatkah saya memplot grafik dengan python?

Pygal

Pygal berfokus pada tampilan visual. Ini menghasilkan plot SVG secara default, sehingga Anda dapat memperbesarnya selamanya atau mencetaknya tanpa membuat piksel. Plot Pygal juga hadir dengan beberapa fitur interaktivitas bawaan yang bagus, menjadikan Pygal kandidat lain yang diremehkan jika Anda ingin menyematkan plot di aplikasi web

Kode sumbernya terlihat seperti ini (dan Anda dapat menjalankannya di sini)

    import pygal
    from pygal.style import Style
    from votes import wide as df

    # Define the style
    custom_style = Style(
        colors=('#0343df', '#e50000', '#ffff14', '#929591')
        font_family='Roboto,Helvetica,Arial,sans-serif',
        background='transparent',
        label_font_size=14,
    )

    # Set up the bar plot, ready for data
    c = pygal.Bar(
        title="UK Election Results",
        style=custom_style,
        y_title='Seats',
        width=1200,
        x_label_rotation=270,
    )

    # Add four data sets to the bar plot
    c.add('Conservative', df['conservative'])
    c.add('Labour', df['labour'])
    c.add('Liberal', df['liberal'])
    c.add('Others', df['others'])

    # Define the X-labels
    c.x_labels = df['year']

    # Write this to an SVG file
    c.render_to_file('pygal.svg')

Dan grafiknya

Dapatkah saya memplot grafik dengan python?

Panda

Pandas adalah perpustakaan ilmu data yang sangat populer untuk Python. Ini memungkinkan Anda untuk melakukan semua jenis manipulasi data secara skalabel, tetapi juga memiliki API perencanaan yang nyaman. Karena beroperasi langsung pada bingkai data, contoh panda adalah cuplikan kode paling ringkas dalam artikel ini—bahkan lebih pendek daripada kode Seaborn

API panda adalah pembungkus di sekitar Matplotlib, jadi Anda juga dapat menggunakan API Matplotlib yang mendasarinya untuk mendapatkan kontrol yang lebih baik dari plot Anda

Berikut plot hasil pemilu di panda. Kode ini sangat ringkas

    from matplotlib.colors import ListedColormap
    from votes import wide as df

    cmap = ListedColormap(['#0343df', '#e50000', '#ffff14', '#929591'])

    ax = df.plot.bar(x='year', colormap=cmap)

    ax.set_xlabel(None)
    ax.set_ylabel('Seats')
    ax.set_title('UK election results')

    plt.show()
_

Dan grafik yang dihasilkan

Dapatkah saya memplot grafik dengan python?

Untuk menjalankan contoh ini, lihat di sini

Rencanakan jalanmu

Python menawarkan banyak cara untuk memplot data yang sama tanpa banyak kode. Meskipun Anda dapat memulai dengan cepat membuat bagan dengan salah satu metode ini, metode ini memerlukan beberapa konfigurasi lokal. Anvil menawarkan pengalaman berbasis web yang indah untuk pengembangan Python jika Anda membutuhkannya. Selamat merencanakan


Artikel ini didasarkan pada Plotting dengan Python. membandingkan opsi di blog Anvil dan digunakan kembali dengan izin

Apa yang harus dibaca selanjutnya

Dapatkah saya memplot grafik dengan python?

Memformat data NFL untuk melakukan ilmu data dengan Python

Di bagian 1 seri pembelajaran mesin dengan Python ini, pelajari cara menyiapkan dataset National Football League untuk pelatihan

Christa Hayes

15 Oktober 2019

Dapatkah saya memplot grafik dengan python?

3 pustaka Python teratas untuk ilmu data

Ubah Python menjadi analisis data ilmiah dan alat pemodelan dengan pustaka ini

dr. Michael J. Sampah

18 September 2018

Tag

Piton

Ilmu Data

Shaun Taylor-Morgan

Dapatkah saya memplot grafik dengan python?

Shaun memulai pemrograman dengan mensimulasikan pembakaran plasma fusi di sistem laser terbesar di dunia. Dia jatuh cinta dengan Python sebagai alat analisis data, dan tidak pernah menoleh ke belakang. Sekarang dia ingin mengubah segalanya menjadi Python

Lebih banyak tentang saya

5 Komentar

Komentar ini ditutup, namun Anda dapat Mendaftar atau Masuk untuk mengirim komentar di artikel lain

Dapatkah saya memplot grafik dengan python?

Greg Pittman. 3 April 2020

Daftar atau Masuk untuk menyukai

Satu hal yang ditunjukkan adalah bagaimana grafik batang dapat membingungkan secara visual. Dimungkinkan untuk membuat grafik menggunakan Scribus dan Python
https. //wiki. scribus. net/canvas/Advanced_Graphing
Saya pikir grafik garis akan jauh lebih cocok untuk data yang Anda tunjukkan ini

Dapatkah saya memplot grafik dengan python?

Shaun Taylor-Morgan. 1 Juli 2020

Daftar atau Masuk untuk menyukai

Terima kasih atas tautannya. Anda benar, empat plot garis overlay akan lebih mudah dibaca untuk data khusus ini. Secara pribadi, plot bar memberi saya sedikit kegembiraan. tapi saya memilih contoh multi-bar sebagai sesuatu yang dengan baik menghilangkan perbedaan di perpustakaan yang berbeda

Bagaimana Anda merencanakan plot dengan Python?

MatPlotLib dengan Python . e. , ax2 dengan nilai l, b, h dan w. Using add_axes(), add an axis, i.e., ax2 with l, b, h and w values. Plot titik yang sama (Langkah 2) menggunakan metode plot(), dengan warna hijau, lebar garis=3, label=”di dalam plot”. Tetapkan legenda pada kedua plot menggunakan metode legend(). Untuk menampilkan gambar, gunakan metode show().

Apakah Python bagus untuk merencanakan?

Dengan gaya Python yang sebenarnya, ada banyak pilihan ketika memilih perpustakaan untuk merencanakan . Ada pilihan yang relatif sederhana, seperti Matplotlib, dan ada perpustakaan yang lebih kompleks, seperti Folium, yang memanfaatkan kekuatan JavaScript untuk membuat peta interaktif yang benar-benar menakjubkan.

Apa plot () di Python?

Memplot titik x dan y . Parameter 2 adalah larik yang berisi titik-titik pada sumbu y. Jika kita perlu memplot garis dari (1, 3) ke (8, 10), kita harus meneruskan dua larik [1, 8] dan [3, 10] ke fungsi plot . .