gpt4 book ai didi

Python-我应该为指数型数据使用什么颜色图方案?

转载 作者:太空狗 更新时间:2023-10-30 00:19:09 25 4
gpt4 key购买 nike

问题

我有一个图,我正在尝试使用网格化数据绘制世界各地降水率的趋势。我可以让情节本身很好,但颜色范围给我带来了问题。我无法弄清楚如何使颜色图更好地适合我的数据,这似乎是指数级的。 我尝试了对数范围,但它不太适合数据。

代码&数据范围

这是我的 8,192 个数据值在简单的 x-y 线图上按顺序绘制时的样子。数据点在 x 轴上,值在 y 轴上。 enter image description here

这是使用 LogNormal 颜色范围绘制的我的数据的样子。薄荷绿和橙红色对我来说太多了。

#Set labels
lonlabels = ['0','45E','90E','135E','180','135W','90W','45W','0']
latlabels = ['90S','60S','30S','Eq.','30N','60N','90N']

#Set cmap properties
norm = colors.LogNorm() #creates logarithmic scale

#Create basemap
fig,ax = plt.subplots(figsize=(15.,10.))
m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90,llcrnrlon=0,urcrnrlon=360.,lon_0=180.,resolution='c')
m.drawcoastlines(linewidth=1)
m.drawcountries(linewidth=1)
m.drawparallels(np.arange(-90,90,30.),linewidth=0.3)
m.drawmeridians(np.arange(-180.,180.,45.),linewidth=0.3)
meshlon,meshlat = np.meshgrid(lon,lat)
x,y = m(meshlon,meshlat)

#Plot variables
trend = m.pcolormesh(x,y,lintrends[:,:,0],cmap='jet', norm=norm, shading='gouraud')

#Set plot properties
#Colorbar
cbar=m.colorbar(trend, size='8%',location='bottom',pad=0.8) #Set colorbar
cbar.set_label(label='Linear Trend (mm/day/decade)',size=25) #Set label
for t in cbar.ax.get_xticklabels():
t.set_fontsize(25) #Set tick label sizes
#Titles & labels
fig.suptitle('Linear Trends of Precipitation (CanESM2)',fontsize=40,x=0.51,y=0.965)
ax.set_title('a) 1979-2014 Minimum Trend',fontsize=35)
ax.set_xticks(np.arange(0,405,45))
ax.set_xticklabels(lonlabels,fontsize=20)
ax.set_ylabel('Latitude',fontsize=25)
ax.set_yticks(np.arange(-90,120,30))
ax.set_yticklabels(latlabels,fontsize=20)

enter image description here

这是默认的、未更改的颜色范围的样子。 (相同的代码减去了 norm=norm 参数。)

enter image description here

问题

是否有一种数学方案可以用来创建能更好地显示数据范围的颜色图?还是我需要自定义范围?

最佳答案

黑客

您可以尝试应用最大值,即对于任何大于 2 的值,只需将其替换为 2。

然后您将有一种颜色(最大值)代表 2+,其余颜色将更均匀地分布在您的数据中。

关于Python-我应该为指数型数据使用什么颜色图方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com