如何绘制基于区域的颜色编码 python
how to plot region-based color coding python
如何在python中绘制以下内容?我在 2d 中有 1000 点。我需要根据它们在 2d space 中的位置对它们进行颜色编码,如下所示
沿 x 轴移动会增加绿色
沿 y 轴移动增加红色
沿 y=x 线移动,等量增加绿色和红色
所有点的蓝色都相等且为零
这些点代表两个想法(模型)之间的错误。所以每个点都有两个值 point = [p_x, p_y]。
p_x 和 p_y 范围在 0 到 1 之间,如下所示:
points = np.random.rand(1000, 2)
so each point p = [p_x, p_y]
例如,以下代码绘制了一个散点图,其中点的颜色取决于 y 位置。
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
# Plot...
plt.scatter(x, y, c=y, s=100)
plt.show()
如何使每个点的颜色基于 space 中的二维位置,同时取决于 p_x
和 p_y
,以便具有更高 p_x
更绿,p_y
更高的点更红
只需根据您的 points
数组计算 RGB 值并使用 matplotlib.pyplot.scatter
和 color
参数:
import numpy as np
import matplotlib.pyplot as plt
points = np.random.rand(1000, 2)*180
# calculate Red, Green, Blue channels from 0 to 1 based on min/max of points:
R = (points[:,0] - points[:,0].min())/(points[:,0].max()-points[:,0].min())
G = (points[:,1] - points[:,1].min())/(points[:,1].max()-points[:,1].min())
B=np.zeros(R.shape)
# stack those RGB channels into a N x 3 array:
clrs=np.column_stack((R,G,B))
plt.scatter(points[:,0],points[:,1],color=clrs)
plt.show()
结果
编辑:哎呀,看起来我翻转了你想要的 R 和 G 变化的方向,但这应该足以让你继续。
如何在python中绘制以下内容?我在 2d 中有 1000 点。我需要根据它们在 2d space 中的位置对它们进行颜色编码,如下所示 沿 x 轴移动会增加绿色 沿 y 轴移动增加红色 沿 y=x 线移动,等量增加绿色和红色
所有点的蓝色都相等且为零 这些点代表两个想法(模型)之间的错误。所以每个点都有两个值 point = [p_x, p_y]。 p_x 和 p_y 范围在 0 到 1 之间,如下所示:
points = np.random.rand(1000, 2)
so each point p = [p_x, p_y]
例如,以下代码绘制了一个散点图,其中点的颜色取决于 y 位置。
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
# Plot...
plt.scatter(x, y, c=y, s=100)
plt.show()
如何使每个点的颜色基于 space 中的二维位置,同时取决于 p_x
和 p_y
,以便具有更高 p_x
更绿,p_y
更高的点更红
只需根据您的 points
数组计算 RGB 值并使用 matplotlib.pyplot.scatter
和 color
参数:
import numpy as np
import matplotlib.pyplot as plt
points = np.random.rand(1000, 2)*180
# calculate Red, Green, Blue channels from 0 to 1 based on min/max of points:
R = (points[:,0] - points[:,0].min())/(points[:,0].max()-points[:,0].min())
G = (points[:,1] - points[:,1].min())/(points[:,1].max()-points[:,1].min())
B=np.zeros(R.shape)
# stack those RGB channels into a N x 3 array:
clrs=np.column_stack((R,G,B))
plt.scatter(points[:,0],points[:,1],color=clrs)
plt.show()
结果
编辑:哎呀,看起来我翻转了你想要的 R 和 G 变化的方向,但这应该足以让你继续。