Plotly - Nokta Grafikleri ve Tablo

Burada, Plotly'de nokta grafikleri ve tablo fonksiyonunu öğreneceğiz. İlk olarak nokta grafiklerle başlayalım.

Nokta Grafikleri

Bir nokta grafiği, noktaları çok basit bir ölçekte gösterir. Çok sayıda nokta çok karmaşık görünmesine neden olacağından, yalnızca az miktarda veri için uygundur. Nokta çizimleri olarak da bilinirCleveland dot plots. Zaman içinde iki (veya daha fazla) nokta arasındaki veya iki (veya daha fazla) koşul arasındaki değişiklikleri gösterirler.

Nokta grafikleri yatay çubuk grafiğe benzer. Bununla birlikte, daha az dağınık olabilirler ve koşullar arasında daha kolay bir karşılaştırmaya izin verebilirler. Şekil, mod özniteliği işaretleyicilere ayarlanmış bir dağılım izini çizer.

Aşağıdaki örnek, Hindistan'ın bağımsızlığından sonra her nüfus sayımında kaydedilen kadın ve erkekler arasındaki okur yazarlık oranının karşılaştırmasını göstermektedir. Grafikteki iki iz, 1951'den 2011'e kadar her nüfus sayımında erkek ve kadınların okur yazarlık yüzdesini temsil etmektedir.

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)

Çıktı aşağıda gösterildiği gibi olacaktır -

Plotly'de Tablo

Plotly'nin Tablo nesnesi döndürülür go.Table()işlevi. Tablo izleme, satır ve sütunlardan oluşan bir ızgarada ayrıntılı veri görüntüleme için yararlı olan bir grafik nesnesidir. Tablo, ana sütun sırası kullanıyor, yani ızgara, sütun vektörlerinin bir vektörü olarak temsil ediliyor.

İki önemli parametre go.Table() fonksiyon header hangi tablonun ilk satırı ve cellsgeri kalan satırları oluşturan. Her iki parametre de sözlük nesneleridir. Başlıkların değerler özelliği, sütun başlıklarının bir listesi ve her biri bir satıra karşılık gelen bir liste listesidir.

Daha fazla stil özelleştirmesi, linecolor, fill_color, font ve diğer niteliklerle yapılır.

Aşağıdaki kod, yakın zamanda tamamlanan 2019 Kriket Dünya Kupası'nın round robin aşamasının puan tablosunu göstermektedir.

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)

Çıktı aşağıda belirtildiği gibidir -

Tablo verileri, Pandas veri çerçevesinden de doldurulabilir. Virgülle ayrılmış bir dosya oluşturalım (points-table.csv) aşağıdaki gibi -

Takımlar Mat Kazandı Kayıp Berabere NR Puan NRR
Hindistan 9 7 1 0 1 15 0.809
Avustralya 9 7 2 0 0 14 0.868
İngiltere 9 6 3 0 0 14 1.152
Yeni Zelanda 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
Güney Afrika 9 3 5 0 1 7 -0.03
Bangladeş 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

Şimdi bu csv dosyasından bir veri çerçevesi nesnesi oluşturuyoruz ve aşağıdaki gibi tablo izlemesi oluşturmak için kullanıyoruz -

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)