Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

"Làm cách nào để tạo các ô trong Python?" . Matplotlib là cách duy nhất. Ngày nay, Python là ngôn ngữ của khoa học dữ liệu và có nhiều sự lựa chọn hơn. Bạn nên sử dụng cái gì?

Thêm tài nguyên Python

  • IDE là gì?
  • bảng ăn gian. Trăn 3. 7 cho người mới bắt đầu
  • Khung GUI Python hàng đầu
  • Tải xuống. 7 thư viện PyPI thiết yếu
  • Nhà phát triển mũ đỏ
  • Nội dung Python mới nhất

Hướng dẫn này sẽ giúp bạn quyết định. Nó sẽ chỉ cho bạn cách sử dụng từng thư viện trong số bốn thư viện vẽ đồ thị phổ biến nhất của Python—Matplotlib, Seaborn, Plotly và Bokeh—cùng với một số ứng dụng mới nổi tuyệt vời để xem xét. Altair, với API biểu cảm và Pygal, với đầu ra SVG tuyệt đẹp. Tôi cũng sẽ xem API vẽ đồ thị rất tiện lợi do gấu trúc cung cấp

Đối với mỗi thư viện, tôi đã bao gồm các đoạn mã nguồn, cũng như một ví dụ đầy đủ dựa trên web bằng cách sử dụng Anvil, nền tảng của chúng tôi để xây dựng các ứng dụng web không có gì khác ngoài Python. chúng ta hãy xem

Một cốt truyện ví dụ

Mỗi thư viện có một cách tiếp cận hơi khác nhau để vẽ dữ liệu. Để so sánh chúng, tôi sẽ tạo cùng một biểu đồ với từng thư viện và cho bạn xem mã nguồn. Đối với dữ liệu ví dụ của tôi, tôi đã chọn biểu đồ thanh được nhóm này về kết quả bầu cử ở Anh từ năm 1966

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Tôi đã biên soạn bộ dữ liệu về lịch sử bầu cử của Anh từ Wikipedia. số ghế trong quốc hội Vương quốc Anh giành được bởi các đảng Bảo thủ, Lao động và Tự do (được định nghĩa rộng) trong mỗi cuộc bầu cử từ năm 1966 đến 2019, cộng với số ghế giành được bởi "những người khác". " Bạn có thể tải xuống dưới dạng tệp CSV

Matplotlib

Matplotlib là thư viện vẽ đồ thị Python lâu đời nhất và nó vẫn là thư viện phổ biến nhất. Nó được tạo ra vào năm 2003 như một phần của SciPy Stack, một thư viện máy tính khoa học mã nguồn mở tương tự như Matlab

Matplotlib cung cấp cho bạn quyền kiểm soát chính xác đối với các biểu đồ của bạn—ví dụ: bạn có thể xác định vị trí x riêng lẻ của từng thanh trong biểu đồ thanh của mình. Đây là mã để vẽ biểu đồ này (bạn có thể chạy ở đây)

    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()

Và đây là kết quả bầu cử được vẽ trong Matplotlib

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

 

sinh ra biển

Seaborn là một lớp trừu tượng trên Matplotlib;

Nó không thỏa hiệp về quyền lực, mặc dù. Seaborn cung cấp các lối thoát hiểm để truy cập các đối tượng Matplotlib bên dưới, vì vậy bạn vẫn có toàn quyền kiểm soát

Mã của Seaborn đơn giản hơn Matplotlib thô (có thể chạy được tại đây)

    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()

Và tạo ra biểu đồ này

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

âm mưu

Plotly là một hệ sinh thái vẽ đồ thị bao gồm thư viện vẽ đồ thị Python. Nó có ba giao diện khác nhau

  • Giao diện hướng đối tượng
  • Giao diện bắt buộc cho phép bạn chỉ định cốt truyện của mình bằng cấu trúc dữ liệu giống như JSON
  • Giao diện cấp cao tương tự như Seaborn được gọi là Plotly Express

Các ô Plotly được thiết kế để nhúng vào các ứng dụng web. Về cốt lõi, Plotly thực sự là một thư viện JavaScript. Nó sử dụng D3 và ngăn xếp. gl để vẽ các ô

Bạn có thể xây dựng thư viện Plotly bằng các ngôn ngữ khác bằng cách chuyển JSON tới thư viện JavaScript. Các thư viện Python và R chính thức làm việc đó. Tại Anvil, chúng tôi đã chuyển API Python Plotly để chạy trong trình duyệt web

Đây là mã nguồn trong Plotly (mà bạn có thể chạy ở đây)

    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()

Và âm mưu kết quả bầu cử

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Bokeh

Bokeh (phát âm là "BOE-kay") chuyên xây dựng các lô tương tác, vì vậy ví dụ tiêu chuẩn này không thể hiện hết khả năng của nó. Giống như Plotly, các ô của Bokeh được thiết kế để nhúng vào các ứng dụng web;

Đây là mã trong Bokeh (mà bạn có thể chạy ở đây)

    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

Và cốt truyện

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

bàn thờ

Altair dựa trên ngôn ngữ vẽ biểu đồ khai báo (hay "ngữ pháp trực quan hóa") có tên là Vega. Điều này có nghĩa là đó là một API được cân nhắc kỹ lưỡng, có khả năng mở rộng tốt cho các lô phức tạp, giúp bạn không bị lạc trong địa ngục vòng lặp lồng nhau

Như với Bokeh, Altair xuất các ô của nó dưới dạng tệp HTML. Đây là mã (mà bạn có thể chạy ở đây)

    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')

Và biểu đồ kết quả

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Pygal

Pygal tập trung vào ngoại hình. Nó tạo ra các ô SVG theo mặc định, vì vậy bạn có thể phóng to chúng mãi mãi hoặc in chúng ra mà không bị vỡ pixel. Các biểu đồ Pygal cũng đi kèm với một số tính năng tương tác tốt được tích hợp sẵn, khiến Pygal trở thành một ứng cử viên bị đánh giá thấp nếu bạn đang tìm cách nhúng các biểu đồ vào ứng dụng web

Mã nguồn trông như thế này (và bạn có thể chạy nó ở đây)

    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')

Và biểu đồ

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

gấu trúc

Pandas là một thư viện khoa học dữ liệu cực kỳ phổ biến cho Python. Nó cho phép bạn thực hiện tất cả các loại thao tác dữ liệu theo quy mô, nhưng nó cũng có API vẽ sơ đồ thuận tiện. Bởi vì nó hoạt động trực tiếp trên các khung dữ liệu, ví dụ về gấu trúc là đoạn mã ngắn gọn nhất trong bài viết này—thậm chí còn ngắn hơn mã Seaborn

API gấu trúc là một trình bao bọc xung quanh Matplotlib, vì vậy bạn cũng có thể sử dụng API Matplotlib cơ bản để kiểm soát chi tiết các lô của mình

Đây là âm mưu kết quả bầu cử trong gấu trúc. Mã là đẹp ngắn gọn

    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()

Và biểu đồ kết quả

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Để chạy ví dụ này, hãy xem tại đây

Lập kế hoạch theo cách của bạn

Python cung cấp nhiều cách để vẽ cùng một dữ liệu mà không cần nhiều mã. Mặc dù bạn có thể nhanh chóng bắt đầu tạo biểu đồ bằng bất kỳ phương pháp nào trong số này, nhưng chúng cần một số cấu hình cục bộ. Anvil cung cấp trải nghiệm dựa trên web tuyệt đẹp để phát triển Python nếu bạn có nhu cầu. âm mưu vui vẻ


Bài viết này dựa trên Plotting trong Python. so sánh các tùy chọn trên blog của Anvil và được sử dụng lại với sự cho phép

Đọc gì tiếp theo

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Định dạng dữ liệu NFL để thực hiện khoa học dữ liệu với Python

Trong phần 1 của loạt bài này về machine learning với Python, hãy tìm hiểu cách chuẩn bị bộ dữ liệu National Football League để đào tạo

Christa Hayes

15 Tháng mười, 2019

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

3 thư viện Python hàng đầu cho khoa học dữ liệu

Biến Python thành một công cụ mô hình hóa và phân tích dữ liệu khoa học với các thư viện này

Tiến sĩ. Michael J. rác rưởi

18 Tháng Chín, 2018

thẻ

con trăn

Khoa học dữ liệu

Shaun Taylor-Morgan

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Shaun bắt đầu lập trình một cách nghiêm túc bằng cách mô phỏng các plasma nhiệt hạch đang cháy trong hệ thống laser lớn nhất thế giới. Anh ấy yêu Python như một công cụ phân tích dữ liệu và chưa bao giờ nhìn lại. Bây giờ anh ấy muốn biến mọi thứ thành Python

Thêm về tôi

5 bình luận

Những bình luận này đã bị đóng, tuy nhiên bạn có thể Đăng ký hoặc Đăng nhập để đăng bình luận về một bài viết khác

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Greg Pittman. 3 Tháng Tư, 2020

Đăng ký hoặc Đăng nhập để thích

Một điều đã được chứng minh là biểu đồ thanh có thể gây nhầm lẫn về mặt hình ảnh như thế nào. Có thể tạo biểu đồ bằng Scribus và Python.
https. //wiki. người ghi chép. net/canvas/Advanced_Graphing
Tôi nghĩ biểu đồ đường sẽ phù hợp hơn nhiều với dữ liệu bạn đang hiển thị.

Chức năng nào được sử dụng để hiển thị biểu đồ trong python?

Shaun Taylor-Morgan. ngày 1 tháng 7 năm 2020

Đăng ký hoặc Đăng nhập để thích

Cảm ơn các liên kết. Bạn nói đúng, bốn ô đường xếp chồng sẽ dễ đọc hơn đối với dữ liệu cụ thể này. Nói một cách cá nhân, cốt truyện mang lại cho tôi niềm vui nho nhỏ. nhưng tôi đã chọn ví dụ về nhiều thanh như một thứ giúp chỉ ra sự khác biệt trong các thư viện khác nhau một cách độc đáo

Có thể sử dụng hàm Matplotlib nào để hiển thị biểu đồ ra màn hình?

Nếu bạn đang sử dụng Matplotlib từ bên trong tập lệnh, chức năng plt. show() là bạn của bạn.

Hàm nào được sử dụng để hiển thị lưới trên biểu đồ trong Python?

grid() . Hàm grid() trong module pyplot của thư viện matplotlib dùng để cấu hình các đường lưới.