- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
以下代码生成了我想要的图像,但颜色条为空白/白色,与数据不匹配:
def plot_array(da, ax=None, shift=True):
"""plots an array of lat by lon on a coastline map"""
m = basemap.Basemap()
m.drawcoastlines()
m.pcolormesh(da.lon, y=da.lat, data=da.T, latlon=True)
return m
# 'monthly mean' is an xarray DataArray
fig = plt.figure(0, (14, 8))
grid = ImageGrid(fig, 111, nrows_ncols=(3, 4), axes_pad=0.3,
cbar_mode='single', cbar_location="bottom",)
for i, m in enumerate(months):
plt.sca(grid[i])
plot_array(monthly_mean.sel(month=i + 1))
plt.title(m)
plt.suptitle("{b} - {y} monthly means".format(b=benchmark, y=year))
# plt.colorbar()
plt.tight_layout()
os.makedirs("plots/monthly_means/{y}".format(y=year), exist_ok=True)
plt.savefig("plots/monthly_means/{y}/{b}_{y}.png".format(b=benchmark, y=year))
plt.close()
我还需要做些什么来让颜色条与 ImageGrid 一起工作,还是 ImageGrid 和 basemap 不能很好地协同工作?
最佳答案
据我了解,这不是 basemap 问题。 ImageGrid()
调用只是为颜色条设置一组空白轴,可以通过 cax
传递给 plt.colorbar()
争论。默认情况下,ImageGrid()
具有参数 cbar_set_cax=True
,它在每个子图中设置 cax
属性。然后您可以将其传递给 colorbar()
:
...
plt.colorbar(cax=grid[0].cax)
plt.tight_layout()
...
这将只使用当前事件的轴来确定颜色条数据范围,因此它只会与最终绘图保持一致。您将不得不使用 vmin/vmax
与 pcolormesh()
的组合来确保所有绘图的一致性。
关于python - 在 ImageGrid 中使用 basemap.pcolor 清空颜色栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37917219/
我将 pcolor 与轮廓线一起使用。但是,从图中无法识别线条的值,如下图所示。 [x y data] = peaks(1000); data = data / max(max(data)); col
我正在关注 documentation用于创建自定义颜色图。我想要的 map 如下所示: 这是我想出的字典: cdict = {'red': ((0.00, 0.0, 0.0),
如果我使用具有足够大网格的 pcolor,则小平面边缘与颜色方 block 不匹配。这是一个例子: >> pcolor(rand(18)) 产生这张图片: 鉴于 >> pcolor(rand(19))
我在 matplotlib 中使用 pcolor。我使用三维数组作为输入。我想安排第三个数组以对数刻度显示。有没有办法做到这一点?如果我在绘制第三个数组之前对其取对数,则子值将变为负值,并且 pcol
我有一个带有二进制值的网格,形状为 (1000, 60) ,还有一行 someLine长度(1000,) . 我将它们绘制为 plt.figure() plt.pcolor(rejectionSpac
DF_correlation = [[ 1. 0.98681158 0.82755361 0.92526117 0.89791366 0.9030177 0.89770
我创建了一个 caxis 范围从 -3 到 3 的 pcolor。但是,在数据中我有很多点的值恰好是 1000。我想做的是保持颜色相同所有其他点,但将值为 1000 的任何点的颜色设置为黑色。有谁知道
没有实现的最小例子: [X,Y,Z] = peaks; figure; pcolor(X,Y,Z); shading flat; hold all; axes; contour(X,Y,Z); col
我想在同一张图中绘制两个 numpy 数组 Z1 和 Z2,Z2 在 Z1 之上。数组 Z2 仅包含 0 和 1,我希望 0 完全透明 (alpha = 0),而 1 透明且某些 alpha > 0。
我有矩阵数据,其中一个轴与日期相关。但是,我在将此数据作为轴传递给 pcolor 时遇到问题。我的虚拟数据如下: In [219]: X = [datetime.date.today() + date
似乎 PCOLOR 正在砍掉我数据集的最后一行和最后一列。打印下面 zi 的形状显示它是 (22,22),如我所料,但显示的面积为 21 x 21 平方...知道为什么没有绘制最后一行和最后一列吗?
我想让我的海龟朝离自己最近的具有特定颜色的色 block 方向移动。 目前我的移动代码是: ;FLY MOVEMENT to move-flies ask flies [right rando
是否可以生成具有 2 个 y 轴的 pcolor 图? 考虑以下示例: clear all temp = 1 + (20-1).*rand(365,12); depth = 1:12; time =
为了缓解 described here 问题,我尝试将 pcolor 绘图分为两个互补部分。我有分别对应于经度和纬度的 X 和 Y 数据(实际上,这是由 cartopy 转换为投影坐标的,但是手头的问
我使用 pcolor 绘制二维数组中的信息。但是,数组中的信息在迭代过程中会发生变化,我想动态更新颜色图,以便实时可视化变化。我怎样才能以最简单的方式做到这一点? 编辑 - 示例: from __fu
我正在尝试使用 Heatmap in matplotlib with pcolor? 中的示例使用 pcolor 创建热图但我遇到了麻烦。 首先,接受的 anwser 中的示例对我不起作用,并且我收到
我有一对代表二维空间中的点的数字列表,我想将这些点的 y/x 比率表示为一维热图,并以 1 为中心的发散颜色图,或者我的比率的对数,发散的颜色图以 0 为中心。 我该怎么做? 我当前的尝试(借鉴 He
当我有一段跨越反子午线的无网格纬度/经度/数据对时,经度从 -180 交换到 +180,如何防止使用 pcolor(mesh) 进行 cartopy绘制充满整个地球的网格单元?我的问题与 here 相
我有一个简单的 matplotlib pcolor 图,可以使用以下 MWE 重现: import pandas as pd import matplotlib.pyplot as plt impor
我想使用 matplotlib 在 python 中绘制类似于下图的第二张图: 这背后的代码是here : #!/usr/bin/env python from pylab import * Z =
我是一名优秀的程序员,十分优秀!