python - 为散点图中的每个点分配颜色
问题描述
我需要为每个点分配不同的颜色,我已经完成了一个包含坐标 (x,y) 的元组列表。我需要为每个元组/点分配一种颜色,我的问题是,是否可以像这样将颜色直接分配给元组(x,y,'green')
?提前致谢。
我包括我的代码:
import numpy as np
import matplotlib.pyplot as plt
nodos=[(10,30,'21'),(30,30),(40,20),(50,70),(65,70),(70,50),(90,40),(100,20),(110,30)]
sta=[(10,40),(30,20),(50,20),(40,70),(75,70),(70,40),(90,50),(90,20),(120,30)]
etiquetasNode=['A','B','C','D','E','F','G','H','I']
etiquetasSTA=['STA_A','STA_B','STA_C','STA_D','STA_E','STA_F','STA_G','STA_H','STA_I']
x=list(map(lambda x: x[0],nodos))
y=list(map(lambda x: x[1],nodos))
a=list(map(lambda x: x[0],sta))
b=list(map(lambda x: x[1],sta))
plt.scatter(x,y)
plt.scatter(a,b)
for xi,yi,ei in zip(x,y,etiquetasNode):
plt.text(xi,yi,ei,horizontalalignment='center',verticalalignment='bottom')
for xi,yi,ai in zip(a,b,etiquetasSTA):
plt.text(xi,yi,ai,horizontalalignment='center',verticalalignment='top')
plt.scatter(x,y,linewidth=5,color=(1, 0, 0))
plt.scatter(a,b,linewidth=5,color=(0, 0, 1))
plt.title('Escenario Fuerza Bruta numero 0 cero')
plt.xlabel('distancia en x (mts)')
plt.ylabel('distancia en y (mts)')
plt.xlim(0,130)
plt.ylim(0,100)
t_data = ((0,2,0,0),(0,4,0,0),(0,2,0,0),(0,4,4,4),(0,2,6,5),(0,4,3,2),(0,2,12,2),(0,4,2,2),(0,8,24,2))
table=plt.table(cellText = t_data,
colLabels = ('Canal', 'Throughput','packets_sent','packets lost'),
rowLabels = ('nodo A', 'nodo B','nodo C', 'nodo D','nodo E', 'nodo F','nodo G', 'nodo H','nodo I'),
loc='bottom', bbox=[0.0,-0.45,1,0.35])
plt.subplots_adjust(bottom=0.3)
plt.grid(True)
plt.show()
解决方案
是的,应该可以为每个点分配单独的颜色。您可以通过分配长度为 n 的颜色向量(与您的 x 和 y 向量的长度相同)来做到这一点。
https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.scatter.html
小例子:
import matplotlib.pyplot as plt
import numpy as np
x, y, c = np.random.rand(3, n)
#plt.scatter(x,y,color=c) #this works for different format of color vector
plt.scatter(x,y,c=c)
plt.show()
推荐阅读
- python - Django 通道套接字未连接到消费者
- bash - 回显包含美元的字符串变量的内容
- r - 绘制柱形图时如何避免重复分类变量?
- c# - 使用 WarpAffine() 将 Emgu.CV.Image 向右移动
- python - Pyomo:创建抽象模型和 AMPL 数据
- python - 两个数据之间的差异计算
- sql-server - SQL:我想解决,如何返回每个成员的最后一个操作
- mapbox - Mapbox iOS - 使用 centerOffset 时,不可见的注释显示在左上角
- spring-boot - 有没有办法在 Junit4(5) 中强制执行测试类的顺序
- python - 已解决 - Python - Numpy 串联 3D 数组 - 内存不足 - 更大的数据集