我需要分别绘制两组100个点。 第一组点沿Y轴行进,下一组点距离第一组点稍远。
我的代码如下:
import matplotlib.pyplot as plt
data= numpy.array(network) #network is a list of values
datatwo= numpy.array(list) #list is another list
cmap= numpy.array([(1,0,0),(0,1,0)])
uniqdata, idx=numpy.unique(data, return_inverse=True)
uniqdata, idx=numpy.unique(datatwo, return_inverse=True)
N=len(data)
M=len(datatwo)
fig, ax=plt.subplots()
plt.scatter(numpy.zeros(N), numpy.arange(1,N+1), s=50, c=cmap[idx])
plt.scatter(numpy.ones(M), numpy.arange(1,M+1), s=50, c=cmap[idx])
plt.grid()
plt.show()
我的问题是两个列表(网络和列表)具有不同的值,但解释器将两次相同的点集图形化。我需要有两组不同的点,分别用于网络和列表。
代码有什么问题? 感谢
答案 0 :(得分:0)
这是一段工作代码,它将绘制2个列表中包含的唯一值,第一个集合沿Y轴定位,第二个集合位于Y = 1,每个相应列表使用不同的颜色。我猜这是因为您使用np.unique
这两个列表包含您不想多次绘制的重复值。
import numpy as np
import matplotlib.pyplot as plt
####################################################################################
network = [1,2,3,4,5,6,7,8,8,8,9,10] # Some lists of values
ilist = [1,2,3,4,5,6,7,8,9,9,9,10] # Some other list of values
data= np.array(network) #network is a list of values
datatwo= np.array(ilist) #list is another list
# Some list of color maps to color each list with
cmap= np.array([(1,0,0),(0,1,0)])
# Get the unique values from each array
uniqdata1, idx1=np.unique(data, return_inverse=True)
uniqdata2, idx2=np.unique(datatwo, return_inverse=True)
# Find the length of each unique value array
N=len(uniqdata1)
M=len(uniqdata2)
# Plot the data
fig, ax=plt.subplots()
plt.scatter(np.zeros(N), uniqdata1, s=50, c=cmap[0])
plt.scatter(np.ones(M), uniqdata2, s=50, c=cmap[1])
plt.grid()
plt.show()
希望这有帮助