Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python matplotlib散点图颜色错误_Python_Matplotlib_Scatter Plot - Fatal编程技术网

python matplotlib散点图颜色错误

python matplotlib散点图颜色错误,python,matplotlib,scatter-plot,Python,Matplotlib,Scatter Plot,我正在尝试创建一个带有x和y网格的散点图,其中每个点通过预先指定的值获得一种颜色: {x: 1, y: 2, value: n} 我有一个x和y的列表以及另一个值列表,尝试使用以下方法: # make range of x(0 - 359) and y(-90 - 90) x, y = np.meshgrid(range(0, 360), range(-90, 90)) colors = [a very long list (64800 values, one for each point)]

我正在尝试创建一个带有x和y网格的散点图,其中每个点通过预先指定的值获得一种颜色:

{x: 1, y: 2, value: n}
我有一个x和y的列表以及另一个值列表,尝试使用以下方法:

# make range of x(0 - 359) and y(-90 - 90)
x, y = np.meshgrid(range(0, 360), range(-90, 90))
colors = [a very long list (64800 values, one for each point)]
print(colors)
plt.scatter(x, y, c=colors)
plt.colorbar()
plt.show()
错误:

回溯(最近一次呼叫最后一次):
文件“C:\python3.6.6\lib\site packages\matplotlib\colors.py”,第158行,to_rgba
rgba=\u colors\u full\u map.cache[c,alpha]
键错误:(1.0986122886681098,无)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\python3.6.6\lib\site packages\matplotlib\axes\u axes.py”,第4210行,散点
颜色=mcolors.to_rgba_数组(c)
文件“C:\python3.6.6\lib\site packages\matplotlib\colors.py”,第259行,在to_rgba_数组中
结果[i]=至_rgba(cc,alpha)
文件“C:\python3.6.6\lib\site packages\matplotlib\colors.py”,第160行,在to_rgba中
rgba=_至_rgba_无颜色循环(c,alpha)
文件“C:\python3.6.6\lib\site packages\matplotlib\colors.py”,第211行,在_to_rgba_no_colorcycle中
raise VALUERROR(“无效的RGBA参数:{!r}.”格式(orig_c))
ValueError:无效的RGBA参数:1.0986122886681098
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:/Users/amit neumark/Documents/עמית/alpha/grbs data/grbs/find_burst_location.py”,第168行,in
main()
文件“C:/Users/amit neumark/Documents/עמית/alpha/grbs data/grbs/find_burst_location.py”,主文件第161行
ra2,dec2=卡方(模型,关系)
文件“C:/Users/amit neumark/Documents/עמית/alpha/grbs data/grbs/find_burst_location.py”,第33行,位于chi_square
创建图(总和)
文件“C:/Users/amit neumark/Documents/עמית/alpha/grbs data/grbs/find_burst_location.py”,第134行,在创建图中
plt.散射(x,y,c=颜色)
文件“C:\python3.6.6\lib\site packages\matplotlib\pyplot.py”,第2793行,分散显示
顶点=顶点,边颜色=边颜色,数据=数据,**kwargs)
文件“C:\python3.6.6\lib\site packages\matplotlib\\uuuu init\uuuu.py”,第1785行,在内部
返回函数(ax,*args,**kwargs)
文件“C:\python3.6.6\lib\site packages\matplotlib\axes\u axes.py”,第4223行,散点
.格式(nc=n_元素,xs=x.size,ys=y.size)
ValueError:“c”参数包含64800个元素,不能与大小为64800的“x”和大小为64800的“y”一起使用。

问题出在
x
y
数据中,而不是颜色
c
参数中。您的x和y当前是二维阵列(网格网格)。它应该是一个职位列表。一种方法是将2d网格展平以获得一维阵列。将保持x和y数据点之间的一对一对应关系。“网格栅格”通常用于散点三维打印

我选择了一些随机颜色来提供解决方案

x, y = np.meshgrid(range(0, 360), range(-90, 90))
colors = np.random.random(360*180)
plt.scatter(x.flatten(), y.flatten(), c=colors)
plt.colorbar()

问题出在
x
y
数据中,而不是颜色
c
参数中。您的x和y当前是二维阵列(网格网格)。它应该是一个职位列表。一种方法是将2d网格展平以获得一维阵列。将保持x和y数据点之间的一对一对应关系。“网格栅格”通常用于散点三维打印

我选择了一些随机颜色来提供解决方案

x, y = np.meshgrid(range(0, 360), range(-90, 90))
colors = np.random.random(360*180)
plt.scatter(x.flatten(), y.flatten(), c=colors)
plt.colorbar()

使用类似于
imshow
pcolormesh
的东西进行绘图可能更有意义。这将创建一个跨越x,y坐标网格的“热图”。对于这些函数,x、y网格是可选的

colors = np.arange(64800)

plt.pcolormesh(colors.reshape(360, 180).T)
# OR #
x, y = np.meshgrid(range(0, 360), range(-90, 90))
plt.pcolormesh(x, y, colors.reshape(360, 180).T)


您应该注意如何重塑
颜色
。可以按行或列填充。默认设置为按行(最后一个轴)。当您展平网格时,在另一个答案中注意这一点也很重要。

使用类似于
imshow
pcolormesh
的方法进行绘图可能更有意义。这将创建一个跨越x,y坐标网格的“热图”。对于这些函数,x、y网格是可选的

colors = np.arange(64800)

plt.pcolormesh(colors.reshape(360, 180).T)
# OR #
x, y = np.meshgrid(range(0, 360), range(-90, 90))
plt.pcolormesh(x, y, colors.reshape(360, 180).T)


您应该注意如何重塑
颜色
。可以按行或列填充。默认设置为按行(最后一个轴)。当您展平网格时,在另一个答案中注意这一点也很重要。

我们需要知道颜色列表中有哪些值。我们需要知道颜色列表中有哪些值。