Dalam beberapa kasus, Anda mungkin menemui masalah dalam membuat scatter plot di Python menggunakan library matplotlib. Salah satu masalah yang paling umum adalah ketika scatter plot hanya menampilkan satu titik, padahal Anda ingin menampilkan berbagai titik.
Alasan Terjadinya Masalah
Alasan terjadinya masalah ini adalah karena Anda memanggil fungsi .mean()
untuk mendapatkan nilai rata-rata dari data. Fungsi ini hanya menghasilkan nilai rata-rata yang merupakan satu value, sehingga scatter plot juga hanya menampilkan satu titik.
Solusi
Untuk menyelesaikan masalah ini, Anda dapat memanggil fungsi .scatter()
dengan dua argument: array X dan array Y. Array X dan Y harus berisi nilai-nilai untuk setiap titik yang ingin ditampilkan dalam scatter plot.
Contoh kode:
import matplotlib.pyplot as plt
import pandas as pd
# Buat data
data = pd.DataFrame({'computed_sales': [4097131.5023790644], 'movie_facebook_likes': [7524.472442505948]})
# Buat scatter plot
fig, ax = plt.subplots()
ax.scatter(data['computed_sales'], data['movie_facebook_likes'])
plt.show()
Dalam contoh kode di atas, Anda dapat melihat bahwa kita menggunakan fungsi .scatter()
dengan dua argument: data['computed_sales']
dan data['movie_facebook_likes']
. Fungsi ini akan menampilkan scatter plot yang berisi beberapa titik.
Mengubah Warna Titik dalam Scatter Plot
Jika Anda ingin mengubah warna hanya satu titik dalam scatter plot, Anda dapat menggunakan atribut c
(color) pada fungsi .scatter()
.
Contoh kode:
import matplotlib.pyplot as plt
# Buat data
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]
# Buat scatter plot dengan warna biru untuk titik pertama dan warna merah untuk titik kedua
plt.scatter(x[:-1], y[:-1], c='blue')
plt.scatter(x[-1], y[-1], c='red')
plt.show()
Dalam contoh kode di atas, kita menggunakan fungsi .scatter()
dua kali. Kita membuat scatter plot pertama dengan warna biru untuk titik-titik kecuali yang terakhir (dengan menggunakan slicing x[:-1]
dan y[:-1]
). Lalu, kita membuat scatter plot kedua dengan warna merah hanya untuk titik terakhir (dengan menggunakan slicing x[-1]
dan y[-1]
).
Mengatur Tooltips dalam Scatter Plot
Jika Anda ingin menampilkan tooltips yang berisi informasi tambahan tentang setiap titik dalam scatter plot, Anda dapat menggunakan library D3.js.
Contoh kode:
// Buat data
var data = [
{x: 1, y: 10},
{x: 2, y: 20},
{x: 3, y: 30},
{x: 4, y: 40}
];
// Buat scatter plot dengan tooltips
d3.select("body")
.append("svg")
.attr("width", 400)
.attr("height", 200);
var tooltip = d3.select("body").append("div")
.attr("class", "tooltip");
d3.selectAll(".dot")
.on("mouseover", function(d) {
tooltip.html("<p>x: " + d.x + "</p><p>y: " + d.y + "</p>")
.style("left", (d3.event.pageX - 50) + "px")
.style("top", (d3.event.pageY - 25) + "px");
})
.on("mouseout", function(d) {
tooltip.html("");
});
// Buat scatter plot
var svg = d3.select("body").append("svg")
.attr("width", 400)
.attr("height", 200);
d3.selectAll(".dot")
.data(data)
.enter()
.append("circle")
.attr("class", "dot")
.attr("cx", function(d) {
return d.x;
})
.attr("cy", function(d) {
return d.y;
})
.attr("r", 5);
Dalam contoh kode di atas, kita menggunakan library D3.js untuk membuat scatter plot dengan tooltips. Kita mengatur tooltips untuk muncul ketika mouse berada di atas setiap titik dalam scatter plot.
Mengatasi Masalah pada OriginLab
Jika Anda menggunakan OriginLab untuk membuat grafik, Anda mungkin menemui masalah ketika Anda ingin menampilkan dua skala Y yang berbeda. Salah satu solusi adalah dengan menggunakan fitur "Interpolate/Extrapolate Y from X" untuk mengisi nilai-nilai yang tidak ada dalam data.
Contoh kode:
// Buat data
y1 = [10, 20, 30, 40];
x1 = [1, 2, 3, 4];
// Interpolate/Extrapolate Y from X
interpolated_data = interpolater(x1, y1);
// Buat grafik dengan dua skala Y yang berbeda
graph;
Layer[1] = plot(y1, x1);
Layer[2] = plot(interpolated_data.x, interpolated_data.y);
Dalam contoh kode di atas, kita menggunakan fitur "Interpolate/Extrapolate Y from X" untuk mengisi nilai-nilai yang tidak ada dalam data. Kemudian, kita membuat grafik dengan dua skala Y yang berbeda.
Itulah beberapa solusi untuk masalah-masalah yang mungkin Anda hadapi dalam membuat scatter plot di Python dan OriginLab.