【发布时间】:2021-04-25 22:47:04
【问题描述】:
我有一组 X 和 Y 数据点(大约 20k),我想用散点图来表示。
数据集看起来有点像这个
x = [1, 1, 2, 1, 2, 1, 1, 2]
y = [3.1, 3.1, 3.1, 1, 2, 3.1, 1, 2]
(数据实际数据集中并非所有值都是整数)
我想制作一个带有颜色的散点图,其中颜色表示特定“x”的“y”中特定值的频率
为此,我尝试为每个 x 值计算 y 的直方图,但我总是得到一个错误的图。我使用的代码如下所示
x = [1, 1, 2, 1, 2, 1, 1, 2]
y = [3.1, 3.1, 3.1, 1, 2, 3.1, 1, 2]
I = []
Y = []
C = []
for i in range (0, len(x)):
if x[i] not in I :
I.append(x[i])
for j in range (0, len(x)):
if x[i] == x[j]:
Y.append(y[j])
u,c = np.unique(Y, return_counts=True)
C.append(c)
Y = []
plt.scatter(x, y, s=70, c=C, cmap='RdYlBu', marker='o', edgecolors='black', linewidth=1, alpha=7)
plt.xlabel('x')
plt.ylabel('y')
plt.colorbar()
最后的情节是这样的 final plot
如果有人能告诉我我在哪里犯了错误,或者我怎么可能做到这一点,那将非常有帮助。我对 python 很陌生,因此感谢您提供更多解释。
提前谢谢你。 (也可以让具有相同值的点以相同的颜色重复出现吗?)
【问题讨论】:
标签: python matplotlib histogram scatter