对于变量z的许多不同值,我有两个变量(x,y)的一系列线图.我通常会添加带有这样的图例的线条图:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
# suppose mydata is a list of tuples containing (xs, ys, z)
# where xs and ys are lists of x's and y's and z is a number.
legns = []
for(xs,ys,z) in mydata:
pl = ax.plot(xs,ys,color = (z,0,0))
legns.append("z = %f"%(z))
ax.legends(legns)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是我有太多的图表,传说将涵盖图表.我宁愿用一个颜色条来表示与颜色对应的z的值.我无法在galery中找到类似的东西,我所有的尝试都处理了colorbar失败.显然我必须在尝试添加颜色条之前创建一组绘图.
是否有捷径可寻?谢谢.
编辑(澄清):
我想做这样的事情:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
fig = plt.figure()
ax = fig.add_subplot(111)
mycmap = cm.hot
# suppose mydata is …Run Code Online (Sandbox Code Playgroud) 我想使散点图上的点的颜色对应于空隙分数的值,但是在对数标度上以放大差异.我这样做了,但是现在当我执行plt.colorbar()时,它会显示空白分数的对数,当我真的想要实际的空隙分数时.如何使用属于[0.00001,1]的空白分数的适当标签在色条上进行对数刻度?
这是我现在拥有的图的图像,但是空隙分数颜色条没有被适当地标记为对应于真实的空隙分数,而不是它的对数.

fig = plt.figure()
plt.scatter(x,y,edgecolors='none',s=marker_size,c=np.log(void_fraction))
plt.colorbar()
plt.title('Colorbar: void fraction')
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我正在绘制一张地图,上面有箭头。这些箭头代表风向、平均风速(每个方向)和发生情况(每个方向)。
方向由箭头的方向指示。箭头的长度表示该方向的平均风速。箭头的颜色表示该方向有风。
这一切都可以与下面的脚本配合使用:
windData = pd.read_csv(src+'.txt'), sep='\t', names=['lat', 'lon', 'wind_dir_start', 'wind_dir_end', 'total_num_data_points','num_data_points', 'avg_windspeed']).dropna()
# plot map
m = Basemap(llcrnrlon=minLon, llcrnrlat=minLat, urcrnrlon=maxLon, urcrnrlat=maxLat, resolution='i')
Left, Bottom = m(minLon, minLat)
Right, Top = m(maxLon, maxLat)
# get x y
x, y = m(windData['lon'], windData['lat'])
# angles
angleStart = -windData['wind_start']+90
angleStart[angleStart<0] = np.radians(angleStart[angleStart<0]+360.)
angleEnd = -windData['wind_end']+90
angleEnd[angleEnd<0] = np.radians(angleEnd[angleEnd<0]+360.)
angle = angleStart + math.radians(binSize/2.)
xux = np.cos(angle) * windData['avg_windspeed']
yuy = np.sin(angle) * windData['avg_windspeed']
# occurence
occurence = (windData['num_data_points']/windData['total_num_data_points'])
xi = np.linspace(minLon, maxLon, …Run Code Online (Sandbox Code Playgroud)