Plotly - Dot Plots and Table
ที่นี่เราจะเรียนรู้เกี่ยวกับพล็อตจุดและฟังก์ชันตารางใน Plotly ก่อนอื่นให้เราเริ่มต้นด้วย dot plot
Dot Plots
พล็อตจุดแสดงจุดในระดับที่เรียบง่ายมาก เหมาะสำหรับข้อมูลจำนวนเล็กน้อยเนื่องจากจุดจำนวนมากจะทำให้ดูรกมาก Dot plot เรียกอีกอย่างว่าCleveland dot plots. แสดงการเปลี่ยนแปลงระหว่างสองจุด (หรือมากกว่า) ในช่วงเวลาหรือระหว่างสองเงื่อนไข (หรือมากกว่า)
Dot plot คล้ายกับแผนภูมิแท่งแนวนอน อย่างไรก็ตามสามารถทำให้รกน้อยลงและช่วยให้เปรียบเทียบระหว่างเงื่อนไขได้ง่ายขึ้น รูปจะพล็อตการติดตามการกระจายด้วยแอตทริบิวต์โหมดที่กำหนดเป็นเครื่องหมาย
ตัวอย่างต่อไปนี้แสดงการเปรียบเทียบอัตราการรู้หนังสือระหว่างชายและหญิงตามที่บันทึกไว้ในการสำรวจสำมะโนประชากรแต่ละครั้งหลังจากได้รับเอกราชของอินเดีย ร่องรอยสองอย่างในกราฟแสดงถึงเปอร์เซ็นต์การรู้หนังสือของชายและหญิงในการสำรวจสำมะโนประชากรแต่ละครั้งหลังปี 2494 ถึงปี 2554
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)
ผลลัพธ์จะเป็นดังที่แสดงด้านล่าง -
ตารางใน Plotly
วัตถุ Plotly's Table ถูกส่งคืนโดย go.Table()ฟังก์ชัน การติดตามตารางเป็นวัตถุกราฟที่มีประโยชน์สำหรับการดูข้อมูลโดยละเอียดในตารางแถวและคอลัมน์ ตารางใช้ลำดับคอลัมน์หลักกล่าวคือกริดแสดงเป็นเวกเตอร์ของเวกเตอร์คอลัมน์
สองพารามิเตอร์ที่สำคัญของ go.Table() ฟังก์ชันคือ header ซึ่งเป็นแถวแรกของตารางและ cellsรูปแบบที่เหลือของแถว พารามิเตอร์ทั้งสองคืออ็อบเจ็กต์พจนานุกรม แอตทริบิวต์ค่าของส่วนหัวคือรายการส่วนหัวของคอลัมน์และรายการของรายการแต่ละรายการจะสอดคล้องกับหนึ่งแถว
การปรับแต่งสไตล์เพิ่มเติมทำได้โดย linecolor, fill_color, font และแอตทริบิวต์อื่น ๆ
รหัสต่อไปนี้แสดงตารางคะแนนของรอบการแข่งขันรอบชิงชนะเลิศ Cricket World Cup 2019
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)
ผลลัพธ์มีดังต่อไปนี้ -
นอกจากนี้ยังสามารถเติมข้อมูลตารางจากดาต้าเฟรมของ Pandas ให้เราสร้างไฟล์ที่คั่นด้วยลูกน้ำ (points-table.csv) ดังต่อไปนี้ -
ทีม | เสื่อ | ชนะ | สูญหาย | ผูก | NR | Pts | NRR |
---|---|---|---|---|---|---|---|
อินเดีย | 9 | 7 | 1 | 0 | 1 | 15 | 0.809 |
ออสเตรเลีย | 9 | 7 | 2 | 0 | 0 | 14 | 0.868 |
อังกฤษ | 9 | 6 | 3 | 0 | 0 | 14 | 1.152 |
นิวซีแลนด์ | 9 | 5 | 3 | 0 | 1 | 11 | 0.175 |
ปากีสถาน | 9 | 5 | 3 | 0 | 1 | 11 | -0.43 |
ศรีลังกา | 9 | 3 | 4 | 0 | 2 | 8 | -0.919 |
แอฟริกาใต้ | 9 | 3 | 5 | 0 | 1 | 7 | -0.03 |
บังกลาเทศ | 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
ตอนนี้เราสร้างวัตถุ dataframe จากไฟล์ csv นี้และใช้เพื่อสร้างการติดตามตารางดังต่อไปนี้ -
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)