Plotly - Dot Plots và Table

Sau đây, chúng ta sẽ tìm hiểu về các ô chấm và chức năng bảng trong Plotly. Đầu tiên, chúng ta hãy bắt đầu với các lô chấm.

Lô chấm

Biểu đồ chấm hiển thị điểm trên một thang điểm rất đơn giản. Nó chỉ phù hợp với một lượng nhỏ dữ liệu vì một số lượng lớn các điểm sẽ làm cho nó trông rất lộn xộn. Ô chấm còn được gọi làCleveland dot plots. Chúng hiển thị những thay đổi giữa hai (hoặc nhiều) điểm trong thời gian hoặc giữa hai (hoặc nhiều) điều kiện.

Biểu đồ chấm tương tự như biểu đồ thanh ngang. Tuy nhiên, chúng có thể ít lộn xộn hơn và cho phép so sánh dễ dàng hơn giữa các điều kiện. Hình vẽ biểu đồ một dấu vết phân tán với thuộc tính mode được đặt thành các điểm đánh dấu.

Ví dụ sau đây cho thấy sự so sánh tỷ lệ biết chữ giữa nam và nữ được ghi nhận trong mỗi cuộc điều tra dân số sau khi Ấn Độ độc lập. Hai dấu vết trong biểu đồ đại diện cho tỷ lệ nam và nữ biết chữ trong mỗi cuộc điều tra dân số từ năm 1951 đến năm 2011.

from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
census = [1951,1961,1971,1981,1991,2001, 2011]
x1 = [8.86, 15.35, 21.97, 29.76, 39.29, 53.67, 64.63]
x2 = [27.15, 40.40, 45.96, 56.38,64.13, 75.26, 80.88]
traceA = go.Scatter(
   x = x1,
   y = census,
   marker = dict(color = "crimson", size = 12),
   mode = "markers",
   name = "Women"
)
traceB = go.Scatter(
x = x2,
y = census,
marker = dict(color = "gold", size = 12),
mode = "markers",
name = "Men")
data = [traceA, traceB]
layout = go.Layout(
   title = "Trend in Literacy rate in Post independent India",
   xaxis_title = "percentage",
   yaxis_title = "census"
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)

Đầu ra sẽ như hình dưới đây -

Bảng trong Plotly

Đối tượng Bảng của Plotly được trả về bởi go.Table()chức năng. Dấu vết bảng là một đối tượng đồ thị hữu ích để xem dữ liệu chi tiết trong một lưới các hàng và cột. Bảng đang sử dụng thứ tự cột-chính, tức là lưới được biểu diễn dưới dạng vectơ của các vectơ cột.

Hai thông số quan trọng của go.Table() chức năng là header là hàng đầu tiên của bảng và cellstạo thành phần còn lại của các hàng. Cả hai tham số đều là đối tượng từ điển. Thuộc tính giá trị của tiêu đề là danh sách các tiêu đề cột và danh sách các danh sách, mỗi danh sách tương ứng với một hàng.

Các tùy chỉnh tạo kiểu khác được thực hiện bởi linecolor, fill_color, phông chữ và các thuộc tính khác.

Mã sau hiển thị bảng điểm của giai đoạn lượt đi của World Cup Crikê 2019 vừa kết thúc.

trace = go.Table(
   header = dict(
      values = ['Teams','Mat','Won','Lost','Tied','NR','Pts','NRR'],
      line_color = 'gray',
      fill_color = 'lightskyblue',
      align = 'left'
   ),
   cells = dict(
      values = 
      [
         [
            'India',
            'Australia',
            'England',
            'New Zealand',
            'Pakistan',
            'Sri Lanka',
            'South Africa',
            'Bangladesh',
            'West Indies',
            'Afghanistan'
         ],
         [9,9,9,9,9,9,9,9,9,9],
         [7,7,6,5,5,3,3,3,2,0],
         [1,2,3,3,3,4,5,5,6,9],
         [0,0,0,0,0,0,0,0,0,0],
         [1,0,0,1,1,2,1,1,1,0],
         [15,14,12,11,11,8,7,7,5,0],
         [0.809,0.868,1.152,0.175,-0.43,-0.919,-0.03,-0.41,-0.225,-1.322]
      ],
      line_color='gray',
      fill_color='lightcyan',
      align='left'
   )
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

Đầu ra như được đề cập bên dưới -

Dữ liệu bảng cũng có thể được điền từ khung dữ liệu Pandas. Hãy để chúng tôi tạo một tệp được phân tách bằng dấu phẩy (points-table.csv) như bên dưới -

Đội Chiếu Giành được Mất đi Trói NR Pts NRR
Ấn Độ 9 7 1 0 1 15 0,809
Châu Úc 9 7 2 0 0 14 0,868
nước Anh 9 6 3 0 0 14 1.152
New Zealand 9 5 3 0 1 11 0,175
Pakistan 9 5 3 0 1 11 -0,43
Sri Lanka 9 3 4 0 2 số 8 -0,919
Nam Phi 9 3 5 0 1 7 -0.03
Bangladesh 9 3 5 0 1 7 -0,41
Teams,Matches,Won,Lost,Tie,NR,Points,NRR
India,9,7,1,0,1,15,0.809
Australia,9,7,2,0,0,14,0.868
England,9,6,3,0,0,12,1.152
New Zealand,9,5,3,0,1,11,0.175
Pakistan,9,5,3,0,1,11,-0.43
Sri Lanka,9,3,4,0,2,8,-0.919
South Africa,9,3,5,0,1,7,-0.03
Bangladesh,9,3,5,0,1,7,-0.41
West Indies,9,2,6,0,1,5,-0.225
Afghanistan,9,0,9,0,0,0,-1.322

Bây giờ chúng ta tạo một đối tượng khung dữ liệu từ tệp csv này và sử dụng nó để tạo dấu vết bảng như bên dưới:

import pandas as pd
df = pd.read_csv('point-table.csv')
trace = go.Table(
   header = dict(values = list(df.columns)),
   cells = dict(
      values = [
         df.Teams, 
         df.Matches, 
         df.Won, 
         df.Lost, 
         df.Tie, 
         df.NR, 
         df.Points, 
         df.NRR
      ]
   )
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)