Dalam artikel ini, kita akan belajar cara membuat grafik interaktif menggunakan Plotly dan teknik Scatterplot Matrix (SPLOM). SPLOM adalah sebuah teknologi yang digunakan untuk menganalisis keterkaitan antara beberapa variabel. Dalam kasus ini, kita akan menggunakan dataset dari Iris dan diabetes untuk membuat SPLOM.

Dataset

Pertama-tama, kita harus mengunduh dataset yang akan kita gunakan. Kita akan menggunakan dataset Iris dan diabetes dari Kaggle.

import pandas as pd

# Mengunduh dataset Iris
iris_df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/iris-data.csv')

# Mengunduh dataset diabetes
diabetes_df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv')

Membuat SPLOM untuk Dataset Iris

Kita akan membuat SPLOM untuk dataset Iris menggunakan Plotly. SPLOM ini akan menampilkan keterkaitan antara sepal length, sepal width, petal length, dan petal width.

import plotly.graph_objs as go

# Membuat SPLOM
fig = go.Figure(data=go.Splom(
 dimensions=[
 dict(label='sepal length', values=iris_df['sepal length']),
 dict(label='sepal width', values=iris_df['sepal width']),
 dict(label='petal length', values=iris_df['petal length']),
 dict(label='petal width', values=iris_df['petal width']),
 ],
 text=iris_df['class'],
 marker=dict(
 color=index_vals,
 showscale=False,
 line_color='white',
 line_width=0.5
 )
))

# Mengatur layout SPLOM
fig.update_layout(title='Iris Data set', width=600, height=600)

# Menampilkan SPLOM
fig.show()

Membuat SPLOM untuk Dataset Diabetes

Kita akan membuat SPLOM untuk dataset diabetes menggunakan Plotly. SPLOM ini akan menampilkan keterkaitan antara 8 variabel diagnostic dan Outcome (diabetic atau non-diabetic).

import plotly.graph_objs as go

# Membuat SPLOM
fig = go.Figure(data=go.Splom(
 dimensions=[
 dict(label='Pregnancies', values=diabetes_df['Pregnancies']),
 dict(label='Glucose', values=diabetes_df['Glucose']),
 dict(label='BloodPressure', values=diabetes_df['BloodPressure']),
 dict(label='SkinThickness', values=diabetes_df['SkinThickness']),
 dict(label='Insulin', values=diabetes_df['Insulin']),
 dict(label='BMI', values=diabetes_df['BMI']),
 dict(label='DiabPedigreeFun', values=diabetes_df['DiabetesPedigreeFunction']),
 dict(label='Age', values=diabetes_df['Age'])
 ],
 text=textd,
 marker=dict(
 color=diabetes_df['Outcome'],
 size=5,
 colorscale='Bluered',
 line=dict(width=0.5, color='rgb(230,230,230)')
 )
))

# Mengatur layout SPLOM
fig.update_layout(title="Scatterplot Matrix (SPLOM) for Diabetes Dataset<br>Data source: [1]", dragmode='select', width=1000, height=1000, hovermode='closest')

# Menampilkan SPLOM
fig.show()

Hover Effects

Plotly juga memiliki fitur hover effects yang dapat digunakan untuk menambahkan efek interaktif pada grafik. Dalam kasus ini, kita akan menggunakan fitur hover effects untuk menampilkan informasi lebih lanjut tentang setiap data point.

import plotly.graph_objects as go

# Membuat SPLOM
fig = go.Figure(data=go.Splom(
 dimensions=[
 dict(label="sepal length", values=df["sepal length"]),
 dict(label="sepal width", values=df["sepal width"]),
 dict(label="petal length", values=df["petal length"]),
 dict(label="petal width", values=df["petal width"]),
 ],
 showupperhalf=False,
 text=df["class"],
 marker=dict(
 color=index_vals,
 showscale=False,
 line_color="white",
 line_width=0.5
 )
))

# Mengatur layout SPLOM
fig.update_layout(title="Iris Data set", hoversubplots="axis", width=600, height=600, hovermode="x")

# Menampilkan SPLOM
fig.show()

Dalam artikel ini, kita telah belajar cara membuat grafik interaktif menggunakan Plotly dan teknik Scatterplot Matrix (SPLOM). Kita juga telah melihat bagaimana fitur hover effects dapat digunakan untuk menambahkan efek interaktif pada grafik.