嗨,我正在尝试使用pythons底图绘制地图,其中一些国家填充了某种颜色.
那里有一个快速简便的解决方案吗?
我想在立体地图上显示一些值(在这种情况下是南极(spstere)).如果我在圆柱形地图(cyl)上显示它们一切都很好:
m = Basemap(projection='cyl',llcrnrlon=-180,llcrnrlat=-90,urcrnrlon=180,urcrnrlat=90,resolution='i')
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')
Run Code Online (Sandbox Code Playgroud)
现在我想在南极立体地图上使用相同的值,但我无法让它工作:
m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')
Run Code Online (Sandbox Code Playgroud)
我做什么我只能画大陆,但没有数据.
我通常将我的情节保存在python中作为PNG.这很好,但在后来重新缩放时有明显的缺点.因此,我想将我的情节,图形等保存为矢量图形,然后能够将它们导入Windows应用程序,如word或powerpoint.
我现在面临几个问题.
以下是一些试图想象我的问题的图片.



我有一个需要用 python 读取的 HDF4 文件。为此,我使用pyhdf. 在大多数情况下,我很乐意使用SDclass 打开文件:
import pyhdf.SD as SD
hdf = SD.SD(hdfFile)
Run Code Online (Sandbox Code Playgroud)
然后继续
v1 = hdf.select('Data set 1')
v2 = hdf.select('Data set 2')
Run Code Online (Sandbox Code Playgroud)
但是我在 HDF 文件中有几个组,并且一些变量出现在多个具有相同名称的组中:
In Group 1I haveData set 3和 in Group 2I haveData set 3所以我的select命令只会选择其中一个我猜(我不知道是哪一个?)。
有没有一种简单的方法来选择(阅读)Data set 3fromGroup 1和 from Group 2?
我查看了V和VS模块。我找到了一个示例脚本,它将遍历所有组和子组等,并找到所有变量(数据集)。但是我现在知道如何将这些变量连接到父级,至于我知道它们属于哪个组。
我想用matplotlib.pyplot.hist2d绘制2d直方图.作为输入我掩盖了numpy.ma数组.这样的工作正常如下:
hist2d (arr1,arr2,cmin=1)
Run Code Online (Sandbox Code Playgroud)
但是,如果我想规范化数组,那么我得到的值总是在0和1之间,使用normed = True关键字,就像这样
hist2d (arr1,arr2,cmin=1, normed=True)
Run Code Online (Sandbox Code Playgroud)
我收到错误
.../numpy/ma/core.py:3791: UserWarning: Warning: converting a masked element to nan.
warnings.warn("Warning: converting a masked element to nan.")
.../matplotlib/colorbar.py:561: RuntimeWarning: invalid value encountered in greater
inrange = (ticks > -0.001) & (ticks < 1.001)
.../matplotlib/colorbar.py:561: RuntimeWarning: invalid value encountered in less
inrange = (ticks > -0.001) & (ticks < 1.001)
.../matplotlib/colors.py:556: RuntimeWarning: invalid value encountered in less
cbook._putmask(xa, xa < 0.0, -1)
Run Code Online (Sandbox Code Playgroud)
知道如何绕过这个仍然得到一个标准化的二维直方图吗?
我希望在我的轴上有粗体标签,所以我可以使用该图块进行发布.我还需要在图例中以粗体显示线条的标签.到目前为止,我可以将轴标签和图例设置为我想要的尺寸和重量.我也可以将轴标签的大小设置为我想要的大小,但是我的重量不足.
这是一个示例代码:
# plotting libs
from pylab import *
from matplotlib import rc
if __name__=='__main__':
tmpData = np.random.random( 100 )
# activate latex text rendering
rc('text', usetex=True)
rc('axes', linewidth=2)
rc('font', weight='bold')
#create figure
f = figure(figsize=(10,10))
ax = gca()
plot(np.arange(100), tmpData, label=r'\textbf{Line 1}', linewidth=2)
ylabel(r'\textbf{Y-AXIS}', fontsize=20)
xlabel(r'\textbf{X-AXIS}', fontsize=20)
fontsize = 20
fontweight = 'bold'
fontproperties = {'family':'sans-serif','sans-serif':['Helvetica'],'weight' : fontweight, 'size' : fontsize}
ax.set_xticklabels(ax.get_xticks(), fontproperties)
ax.set_yticklabels(ax.get_yticks(), fontproperties)
for tick in ax.xaxis.get_major_ticks():
tick.label1.set_fontsize(fontsize)
for tick in ax.yaxis.get_major_ticks():
tick.label1.set_fontsize(fontsize)
legend()
show()
sys.exit()
Run Code Online (Sandbox Code Playgroud)
这就是我得到的: …
在一个(相当大的)代码中,我在几个地方进行了检查,如果其中一个失败,我希望程序退出。到目前为止,我通常使用sys.exit()括号内带有文本的函数,例如
sys.exit('some text')
但是,我还想提供一些确切退出发生的信息,我不想手动执行此操作。周围有一些优雅的解决方案吗?