我无法将颜色条添加到我的三维散点图中,它的颜色范围是根据bifurWidth
的值在min
和{
我最近的一次尝试是从下面的代码中散列出来的。在
我的代码:
from glob import glob
from pylab import *
import numpy as np
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
def myScatter(x0,y0,power_array,c,lw,s,vmin,vmax,cmap,label,ax):
ax.scatter(x0,y0,power_array,c=c,lw=lw,s=s,vmin=min,vmax=max,cmap=cmhot,label=label)
fig = figure()
ax = fig.add_subplot(111, projection='3d')
cmhot = get_cmap("jet")
fig.tight_layout()
fig.set_size_inches(25,15)
min = 3 #colorbar range
max = 10
lw = 0 #linewidth
s = 10 #scatter size
for idx, p in enumerate(dataSorted[:,1]):
powerLoop = dataSorted[idx,0]
powerLoop = powerLoop.astype(np.float)
bifurWidthLoop = dataSorted[idx,2]
bifurWidthLoop = bifurWidthLoop.astype(np.float)
y0 = genfromtxt(p, unpack=True, usecols=[0], skiprows=19, skip_footer=1)
length = len(x0)
power_array = [powerLoop] * length
bifurWidth_array = [bifurWidthLoop] * length
label = str(bifurWidth)
a = myScatter(x0,power_array,y0,bifurWidth_array,lw,s,min,max,cmhot,label,ax)
#cax = ax.imshow(y0, interpolation='nearest', vmin=min, vmax=max)
#fig.colorbar(cax)
fig.savefig('test.png',dpi=300)
尝试及其错误示例:
如果在plotting for
循环的内部或外部使用fig.colorbar(a)
,则返回NoneType
项目没有属性autoscale_None
。在
您的代码没有运行(x0、dataSorted、y0等丢失),因此无法使其工作(另请注意x0、power_array、y0在fn调用中顺序错误)。您需要返回散点图的控制柄才能绘制颜色条。如果您更改myScatter函数以返回句柄
{然后呼叫}。一个最小的例子是
^{pr2}$相关问题 更多 >
编程相关推荐