相关疑难解决方法(0)

Matplotlib - 将颜色条添加到一系列线图中

对于变量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)

python matplotlib colorbar

57
推荐指数
4
解决办法
4万
查看次数

matplotlib散点图中的对数色条

我想使散点图上的点的颜色对应于空隙分数的值,但是在对数标度上以放大差异.我这样做了,但是现在当我执行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)

谢谢你的帮助.

python matplotlib

50
推荐指数
1
解决办法
4万
查看次数

带有彩色箭袋的色彩图

我正在绘制一张地图,上面有箭头。这些箭头代表风向、平均风速(每个方向)和发生情况(每个方向)。

方向由箭头的方向指示。箭头的长度表示该方向的平均风速。箭头的颜色表示该方向有风。

这一切都可以与下面的脚本配合使用:

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)

python matplotlib matplotlib-basemap

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

matplotlib ×3

python ×3

colorbar ×1

matplotlib-basemap ×1