Plotly - พล็อตย่อยและพล็อต Inset
ที่นี่เราจะเข้าใจแนวคิดของพล็อตย่อยและพล็อตที่แทรกใน Plotly
การสร้าง Subplots
บางครั้งการเปรียบเทียบมุมมองข้อมูลที่แตกต่างกันก็เป็นประโยชน์ สิ่งนี้สนับสนุนแนวคิดเรื่องพล็อตย่อย มันมีmake_subplots() ฟังก์ชันใน plotly.tools module. ฟังก์ชันส่งคืนวัตถุรูป
คำสั่งต่อไปนี้สร้างสองพล็อตย่อยในหนึ่งแถว
fig = tools.make_subplots(rows = 1, cols = 2)
ตอนนี้เราสามารถเพิ่มการติดตามที่แตกต่างกันสองรายการ (การติดตามประสบการณ์และบันทึกในตัวอย่างด้านบน) ลงในรูป
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
เค้าโครงของรูปได้รับการกำหนดค่าเพิ่มเติมโดยการระบุ title, width, height, ฯลฯ โดยใช้ update() วิธี.
fig['layout'].update(height = 600, width = 800s, title = 'subplots')
นี่คือสคริปต์ที่สมบูรณ์ -
from plotly import tools
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
import numpy as np
x = np.arange(1,11)
y1 = np.exp(x)
y2 = np.log(x)
trace1 = go.Scatter(
x = x,
y = y1,
name = 'exp'
)
trace2 = go.Scatter(
x = x,
y = y2,
name = 'log'
)
fig = tools.make_subplots(rows = 1, cols = 2)
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig['layout'].update(height = 600, width = 800, title = 'subplot')
iplot(fig)
นี่คือรูปแบบของตารางพล็อตของคุณ: [(1,1) x1, y1] [(1,2) x2, y2]
พล็อตที่ใส่ไว้
ในการแสดงแผนภาพย่อยเป็นสิ่งที่ใส่เข้าไปเราจำเป็นต้องกำหนดค่าวัตถุการติดตาม ก่อนอื่นxaxis และคุณสมบัติ yaxis ของการติดตามสิ่งที่ใส่เข้าไป ‘x2’ และ ‘y2’ตามลำดับ คำสั่งต่อไปนี้ทำให้‘log’ ติดตามในสิ่งที่ใส่เข้าไป
trace2 = go.Scatter(
x = x,
y = y2,
xaxis = 'x2',
yaxis = 'y2',
name = 'log'
)
ประการที่สองกำหนดค่าโครงร่างวัตถุที่ตำแหน่งของแกน x และ y ของสิ่งที่ใส่เข้าไปถูกกำหนดโดย domain คุณสมบัติที่ระบุคือตำแหน่งที่เกี่ยวข้องกับแกนหลัก
xaxis2=dict(
domain = [0.1, 0.5],
anchor = 'y2'
),
yaxis2 = dict(
domain = [0.5, 0.9],
anchor = 'x2'
)
สคริปต์ที่สมบูรณ์เพื่อแสดงการติดตามบันทึกในสิ่งที่ใส่เข้าไปและการติดตาม exp บนแกนหลักได้รับด้านล่าง -
trace1 = go.Scatter(
x = x,
y = y1,
name = 'exp'
)
trace2 = go.Scatter(
x = x,
y = y2,
xaxis = 'x2',
yaxis = 'y2',
name = 'log'
)
data = [trace1, trace2]
layout = go.Layout(
yaxis = dict(showline = True),
xaxis2 = dict(
domain = [0.1, 0.5],
anchor = 'y2'
),
yaxis2 = dict(
showline = True,
domain = [0.5, 0.9],
anchor = 'x2'
)
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)
ผลลัพธ์ดังต่อไปนี้ -