我有一个大约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 图中显示的数据点?
假设您已使用
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()