Pygmt: 如何使用cmap颜色填充多边形

8

早上好,

我正在使用Python 3.6和Spyder上的PyGMT。我正在尝试用一系列由色板定义的颜色填充多边形。我使用makecpt函数定义色板。我想要表示的变量是Mog。

我的代码如下:

pygmt.makecpt(cmap="bilbao",  series=[-5, 50, 5])

for i , long in enumerate(longitude_polyT):     
      fig.plot(x=longitude_polyT[i], y=latitude_polyT[i], frame="a", pen="black", color=Mog[i], cmap=True)

但它没有填充我的多边形。

有人有关于此的想法吗?

非常感谢!


1
我认为问题是由于颜色参数引起的。你能否与我分享变量的部分?longitude_polyTlatitude_polyTMog - Omid Roshani
请发布完整的代码,以便我们可以运行它并重现您得到的结果。如果涉及任何图像,请也将其发布为链接。 - Ann Zen
2个回答

5

以下是我对您想要的最佳猜测:

import pygmt

fig = pygmt.Figure()
a = fig.basemap(region=[0, 6, 0, 2], projection="X12c/4c", frame=True, )

pol = ["n0.9c", "c0.9c", "d0.9c"]
Mog = [
    pygmt.makecpt(cmap="bilbao", series=[-5, 50, 5]),
    pygmt.makecpt(cmap="bilbao", series=[-5, 15, 5]),
    pygmt.makecpt(cmap="bilbao", series=[-8000, 4000])
]
longitude_polyT = [1, 3, 5]
latitude_polyT = [1, 1, 1]

for i, long in enumerate(longitude_polyT):
    fig.plot(x=long, y=latitude_polyT[i], style=pol[i], frame=a,
             pen="black",
             color=Mog[i], cmap=True)
    
fig.show()

此处输入图片描述

无法显示不同的颜色 :(


0

要根据特定值对符号进行着色,您可以使用pygmt.Figure.plot方法的zvalue参数与color="+z"cmap=True(有关详细信息,请参见https://www.pygmt.org/latest/api/generated/pygmt.Figure.plot.html中的文档)。

请在下面找到一个代码示例,该示例修改自上面发布的示例。即使这个问题已经很旧了,这个答案也可能会帮助其他类似的问题。

代码示例

import pygmt

# Define variables
pol = ["n0.9c", "c0.9c", "d0.9c"]
lon_polyT = [1, 3, 5]
Mog = [10, -3, 20]

# Create figure object
fig = pygmt.Figure()

# Set up colormap
pygmt.makecpt(cmap="bilbao", series=[-5, 50, 5])

# Make basic map
fig.basemap(
    region=[0, 6, 0, 2],
    projection="X10c/4c",
    frame="a1fg1",
)

# Plot symbols
# https://www.pygmt.org/latest/api/generated/pygmt.Figure.plot.html
for i in range(len(lon_polyT)):
    fig.plot(
        x=lon_polyT[i],
        y=1,
        style=pol[i],  # symbole shape and size
        pen="1p,black",  # outline thickness in points and color
        fill="+z",  # apply to the fill | before PyGMT v0.8.0 "color"
        zvalue=Mog[i],  # value used for color-coding
        cmap=True,  # use colormap set up above
    )

# Show and save figure
fig.show()
# fig.savefig(fname="symbols_color_by_zvalue.png")

输出图形 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接