散点图点与数据不相似并且看起来非常不符合比例[重复]

问题描述 投票:0回答:1

我有一个大约300个点的数据集,每个点都有对应的X值和Y值。数据中还有第三列,带有“质量”标签,要么表示“好”,要么表示“差”,因此我的数据框中有三列数据,2 列是数字,1 列是字符串。

我只是想绘制这些数据点的散点图,其中“好”点为蓝色,“坏”点为红色,并用图例向我显示这种颜色区别。然而我无法在 python 中匹配我在 Excel 中制作的绘图。

在 Excel 中,我简单地绘制了 X 和 Y 列的散点图并得到了这个,这对我来说看起来是正确的:

然后我尝试使用以下代码在 python 中创建此图:

x = df['X']
y = df['Y']

plt.scatter(x, y)
plt.show()

我得到了一个让我困惑的混乱情节:

除了轴刻度线看起来可怕地挤在一起之外,数据点对我来说根本没有任何意义,它们根本不像我制作的 Excel 绘图,它使用完全相同的数据。也许这可能是轴格式问题,但我不知道。

如何修复我的代码以正确捕获 Excel 图中显示的数据点?

python pandas matplotlib seaborn scatter-plot
1个回答
1
投票

假设您已使用

df = pd.read_csv("/path/to/your/file")
将数据读入 pandas 数据框,并且它具有三列:
X
Y
Quality
,则以下内容应该可以满足您的要求:

# Separate the data into two groups based on the 'Quality' column
good_data = df[df['Quality'] == 'Good']
bad_data = df[df['Quality'] == 'Bad']

# Create a scatter plot
plt.scatter(good_data['X'], good_data['Y'], color='blue', label='Good')
plt.scatter(bad_data['X'], bad_data['Y'], color='red', label='Bad')

# Adding labels and title (optional)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Scatter Plot of Good vs Bad Quality Data')

# Show the legend
plt.legend()

# Show the plot
plt.show()
© www.soinside.com 2019 - 2024. All rights reserved.