【发布时间】:2020-03-16 05:12:56
【问题描述】:
我对 Python 和数据科学有点陌生。
我有一个带有两个输入 x1 和 x2 和一个输出 y 的数据集:
df=pd.DataFrame({'x1': [1, 2, 2, 1, 0.5, -1, -2, -2, -1, -0.5], 'x2': [1, 1, 2, 2, 0.5, -1, -1, -2, -2, -0.5], 'y': [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]})
x1 x2 y
0 1.0 1.0 0
1 2.0 1.0 0
2 2.0 2.0 0
3 1.0 2.0 0
4 0.5 0.5 0
5 -1.0 -1.0 1
6 -2.0 -1.0 1
7 -2.0 -2.0 1
8 -1.0 -2.0 1
9 -0.5 -0.5 1
我已经绘制了这个数据集:
plt.scatter(df.x1[df['y']==1], df.x2[df['y']==1], color='red')
plt.scatter(df.x1[df['y']==0], df.x2[df['y']==0], color='blue')
plt.show()
我想做的是在同一个情节中为我的班级点设置不同的背景。所以我想要的结果是这样的:
我对 Matplotlib 不是很熟悉,我能做到的最好的事情就是为每个类设置两个不同的轴,但这不是我真正想做的..
import pandas as pd
import matplotlib.pyplot as plt
df=pd.DataFrame({'x1': [1, 2, 2, 1, 0.5, -1, -2, -2, -1, -0.5], 'x2': [1, 1, 2, 2, 0.5, -1, -1, -2, -2, -0.5], 'y': [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]})
fig, (ax0, ax1) = plt.subplots(nrows=1, ncols=2, figsize=(20, 10))
ax0.scatter(df.x1[df1['y']==1], df.x2[df1['y']==1], color='red')
ax0.set_facecolor('xkcd:blue')
ax1.scatter(df.x1[df1['y']==0], df.x2[df1['y']==0], color='blue')
ax1.set_facecolor('xkcd:red')
plt.show()
我想要这个结果,但在同一个轴上,请问有什么解决方案吗?
【问题讨论】:
-
一个格式精美的 Q。喜欢你如何包含所需输出的草图。
标签: python pandas matplotlib data-science