Dalam beberapa kesempatan, kita menemui masalah dengan Plotly, yaitu aplikasi yang tidak menyimpan skala grafik secara konstan. Hal ini dapat terjadi ketika data dalam grafik berubah, sehingga skala grafik juga berubah dan tidak sesuai dengan kebutuhan kita.
Salah satu contoh kasus adalah ketika kita membuat plot 3D yang bergerak seiring waktu. Kita ingin menampilkan data di grafik yang sama namun dengan skala tetap, sehingga perubahan dalam data tidak mempengaruhi skala grafik.
Pada awalnya, kita dapat mencoba mengatur yaxis.autorange
menjadi False
dan kemudian secara manual mengatur skala. Namun, cara ini tidak memiliki efek yang diharapkan.
Cara Mengatasi Masalah
Salah satu cara untuk mengatasi masalah ini adalah dengan menggunakan fitur scene.aspectratio
. Dengan menggunakan fitur ini, kita dapat mengatur aspek rasio dari grafik, sehingga kita dapat mempertahankan skala grafik yang tetap.
Namun, jika kita ingin memiliki ruang kosong di sisi grafik, maka kita perlu menggunakan cara lain. Salah satu cara adalah dengan membuat trace tambahan yang berisi dua titik, yaitu titik minimum dan maximum. Kemudian, kita dapat mengatur range dari axis dengan menggunakan sintaks div.layout.scene.xaxis = {range: [xmin, xmax]}
.
Contoh Kasus
Berikut adalah contoh kasus yang diambil dari forum Plotly:
import plotly.graph_objects as go
fig = go.Figure(data=[go.Scatter(x=[1,2,3,4], y=[1,2,3,4], mode="lines", line_color="black")])
# Membuat trace tambahan untuk mengatur range axis
trace_min_max = go.Scatter(
x=[0],
y=[-10],
marker=dict(size=1, color="LightSeaGreen"),
name="Min/Max",
hoverinfo="skip"
)
fig.add_trace(trace_min_max)
Dalam contoh kasus di atas, kita membuat trace tambahan yang berisi dua titik, yaitu titik minimum dan maximum. Kemudian, kita dapat mengatur range axis dengan menggunakan sintaks div.layout.scene.xaxis = {range: [xmin, xmax]}
.
Kesimpulan
Dalam kesimpulannya, Plotly memiliki beberapa fitur yang memungkinkan kita untuk mengatasi masalah skala grafik yang tidak menyimpan. Salah satu cara adalah dengan menggunakan fitur scene.aspectratio
atau membuat trace tambahan untuk mengatur range axis. Dengan demikian, kita dapat menciptakan grafik yang sesuai dengan kebutuhan kita dan memiliki skala grafik yang tetap.