=====================================================
Dalam artikel ini, kita akan membahas cara membuat plotly scatter plot tanpa titik marker. Plotly adalah sebuah library Python yang populer digunakan untuk membuat visualisasi data interaktif.
Masalah
Saya mencoba membuat seri PNG kotak berhiasan – mirip dengan swatch yang ditampilkan di akhir halaman ini. Swatch-swatch tersebut tidak akan digunakan pada web, sehingga saya pikir menggunakan textures.js terlalu melewati jalur dan saya menemukan Plotly, serta bagian khususnya.
Saya berhasil sampai pada tahap ini:
import plotly.express as px
import plotly.graph_objects as go
xy = [
[0, 0], [1, 0], [1, 1], [0, 1], [0, 0]
]
fig = go.Figure(go.Scatter(x=[co[0] for co in xy], y=[co[1] for co in xy],
fill="toself", marker={'size': 0}))
fig.update_layout(showlegend=False)
fig.update_xaxes(visible=False)
fig.update_yaxes(visible=False)
img_bytes = fig.to_image(format="png")
fig.write_image("foo.png")
Namun, saya mengalami kesulitan untuk tidak menampilkan titik-titik di sudut-sudut kotak. Bagaimana cara memperbaiki hal tersebut?
Saya tahu bahwa plot scatter tanpa titik adalah jenis visualisasi yang kurang masuk akal, jadi jika ada solusi yang lebih bersih, saya siap menerima.
Solusi
Saya menemukan jawaban pada dokumen resmi Plotly. Untuk membuat scatter plot tanpa titik marker, Anda dapat menggunakan atribut mode
dengan nilai "lines"
:
fig = go.Figure(go.Scatter(x=[co[0] for co in xy], y=[co[1] for co in xy],
mode="lines", fill="toself"))
Dengan cara ini, scatter plot akan menjadi garis-garis yang tidak memiliki titik marker. Namun, jika Anda ingin membuat kotak berhiasan tanpa garis dan latar belakang, maka Anda perlu menggunakan attribute lain.
Contoh lengkap
Berikut adalah contoh lengkap kode Python yang digunakan untuk membuat scatter plot tanpa titik marker:
import plotly.express as px
import plotly.graph_objects as go
xy = [
[0, 0], [1, 0], [1, 1], [0, 1], [0, 0]
]
fig = go.Figure(go.Scatter(x=[co[0] for co in xy], y=[co[1] for co in xy],
mode="lines", fill="toself"))
fig.update_layout(showlegend=False)
fig.update_xaxes(visible=False)
fig.update_yaxes(visible=False)
img_bytes = fig.to_image(format="png")
fig.write_image("foo.png")
Dengan cara ini, Anda akan mendapatkan scatter plot tanpa titik marker yang dapat digunakan untuk membuat PNG kotak berhiasan.