散点图点与数据不同,看起来非常偏离尺度 [重复]

Scatter plot points do not resemble data and appear very off-scale [duplicate]

提问人:LostinSpatialAnalysis 提问时间:11/14/2023 最后编辑:Trenton McKinneyLostinSpatialAnalysis 更新时间:11/14/2023 访问量:60

问:

我有一个大约 300 个点的数据集,每个点都有相应的 X 值和 Y 值。数据中还有第三列带有“质量”标签,要么说“好”,要么说“坏”,所以我的数据框中有三列数据,两列是数字,一列是字符串。

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

在 Excel 中,我只是制作了 X 列和 Y 列的散点图并得到了这个,这对我来说看起来是正确的:enter image description here

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

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

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

我得到了一个让我感到困惑的混乱情节:enter image description here

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

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

Python 熊猫 matplotlib seaborn 散点图

评论

0赞 Suraj Shourie 11/14/2023
数据是什么样子的?
0赞 LostinSpatialAnalysis 11/14/2023
我发布的 Excel 图是数据的样子,只是绘制了两列。我应该用另一种方式来展示这一点吗?
0赞 Suraj Shourie 11/14/2023
就像我们无法重现您的绘图一样,在您的代码中查找错误和/或在没有数据的情况下修复它
1赞 Trenton McKinney 11/14/2023
最简单的选择是 。此外,您的数据当前被绘制为字符串,而不是数字。ax = sns.scatterplot(data=df, x='X', y='Y', hue='Quality')
1赞 LostinSpatialAnalysis 11/14/2023
@TrentonMcKinney是的,这是我能够解决的问题,它是字符串,所以我让它浮动,然后数据看起来是正确的。谢谢!

答:

0赞 inverted_index 11/14/2023 #1

假设您已经将数据读入了 的 pandas 数据帧中,并且它有三列:、 和 ,那么以下操作应该可以为您解决问题:df = pd.read_csv("/path/to/your/file")XYQuality

# 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()