Plotly - Biểu đồ thanh và Biểu đồ hình tròn
Trong chương này, chúng ta sẽ học cách tạo biểu đồ thanh và biểu đồ hình tròn với sự trợ giúp của Plotly. Chúng ta hãy bắt đầu bằng cách hiểu về biểu đồ thanh.
Biểu đồ cột
Biểu đồ thanh trình bày dữ liệu phân loại với các thanh hình chữ nhật có chiều cao hoặc chiều dài tỷ lệ với giá trị mà chúng đại diện. Thanh có thể được hiển thị theo chiều dọc hoặc chiều ngang. Nó giúp hiển thị so sánh giữa các danh mục rời rạc. Một trục của biểu đồ hiển thị các danh mục cụ thể đang được so sánh và trục còn lại thể hiện giá trị đo được.
Ví dụ sau vẽ một đơn giản bar chartvề số lượng sinh viên đăng ký cho các khóa học khác nhau. Cácgo.Bar() hàm trả về một dấu vết thanh với tọa độ x được đặt làm danh sách các môn học và tọa độ y là số học sinh.
import plotly.graph_objs as go
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
data = [go.Bar(
x = langs,
y = students
)]
fig = go.Figure(data=data)
iplot(fig)
Đầu ra sẽ như hình dưới đây -
Để hiển thị biểu đồ thanh được nhóm lại, barmode thuộc tính của đối tượng Bố cục phải được đặt thành group. Trong đoạn mã sau, nhiều dấu vết đại diện cho học sinh trong mỗi năm được vẽ dựa trên các môn học và được hiển thị dưới dạng biểu đồ thanh được nhóm lại.
branches = ['CSE', 'Mech', 'Electronics']
fy = [23,17,35]
sy = [20, 23, 30]
ty = [30,20,15]
trace1 = go.Bar(
x = branches,
y = fy,
name = 'FY'
)
trace2 = go.Bar(
x = branches,
y = sy,
name = 'SY'
)
trace3 = go.Bar(
x = branches,
y = ty,
name = 'TY'
)
data = [trace1, trace2, trace3]
layout = go.Layout(barmode = 'group')
fig = go.Figure(data = data, layout = layout)
iplot(fig)
Đầu ra của cùng một như sau:
Các barmodethuộc tính xác định cách các thanh tại cùng một tọa độ vị trí được hiển thị trên biểu đồ. Các giá trị được xác định là "ngăn xếp" (các thanh được xếp chồng lên nhau), "tương đối", (các thanh được xếp chồng lên nhau, với giá trị âm bên dưới trục, giá trị dương ở trên), "group"(các thanh được vẽ cạnh nhau).
Bằng cách thay đổi thuộc tính mã vạch thành 'stack'biểu đồ được vẽ xuất hiện như bên dưới -
Biểu đồ tròn
Biểu đồ hình tròn chỉ hiển thị một chuỗi dữ liệu. Pie Charts hiển thị kích thước của các mục (được gọi là wedge) trong một chuỗi dữ liệu, tỷ lệ với tổng các mục. Điểm dữ liệu được hiển thị dưới dạng phần trăm của toàn bộ chiếc bánh.
Các pie() chức năng trong graph_objs mô-đun - go.Pie(), trả về dấu vết Pie. Hai đối số bắt buộc làlabels và values. Chúng ta hãy vẽ một biểu đồ hình tròn đơn giản về các khóa học ngôn ngữ so với số lượng sinh viên như trong ví dụ được đưa ra dưới đây.
import plotly
plotly.tools.set_credentials_file(
username = 'lathkar', api_key = 'U7vgRe1hqmRp4ZNf4PTN'
)
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
import plotly.graph_objs as go
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
trace = go.Pie(labels = langs, values = students)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)
Kết quả sau được hiển thị trong sổ ghi chép Jupyter -
Donut chartlà một biểu đồ hình tròn với một lỗ tròn ở giữa làm cho nó trông giống như một chiếc bánh rán. Trong ví dụ sau, hai biểu đồ bánh rán được hiển thị trong bố cục lưới 1X2. Trong khi 'label'bố trí giống nhau cho cả dấu vết hình tròn, đích hàng và cột của mỗi ô con được quyết định bởi thuộc tính miền.
Vì mục đích này, chúng tôi sử dụng dữ liệu về các ghế sáng suốt của đảng và tỷ lệ phiếu bầu trong các cuộc bầu cử quốc hội năm 2019. Nhập mã sau vào ô sổ ghi chép Jupyter -
parties = ['BJP', 'CONGRESS', 'DMK', 'TMC', 'YSRC', 'SS', 'JDU','BJD', 'BSP','OTH']
seats = [303,52,23,22,22,18,16,12,10, 65]
percent = [37.36, 19.49, 2.26, 4.07, 2.53, 2.10, 1.46, 1.66, 3.63, 25.44]
import plotly.graph_objs as go
data1 = {
"values": seats,
"labels": parties,
"domain": {"column": 0},
"name": "seats",
"hoverinfo":"label+percent+name",
"hole": .4,
"type": "pie"
}
data2 = {
"values": percent,
"labels": parties,
"domain": {"column": 1},
"name": "vote share",
"hoverinfo":"label+percent+name",
"hole": .4,
"type": "pie"
}
data = [data1,data2]
layout = go.Layout(
{
"title":"Parliamentary Election 2019",
"grid": {"rows": 1, "columns": 2},
"annotations": [
{
"font": {
"size": 20
},
"showarrow": False,
"text": "seats",
"x": 0.20,
"y": 0.5
},
{
"font": {
"size": 20
},
"showarrow": False,
"text": "votes",
"x": 0.8,
"y": 0.5
}
]
}
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)
Đầu ra của cùng một được đưa ra dưới đây: