Matplotlib图形

时间:2013-06-23 20:02:34

标签: python graph matplotlib

我需要分别绘制两组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()

我的问题是两个列表(网络和列表)具有不同的值,但解释器将两次相同的点集图形化。我需要有两组不同的点,分别用于网络和列表。

代码有什么问题? 感谢

1 个答案:

答案 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()

希望这有帮助