在 Matplotlib 中绘制 3D 条形图

Plotting 3D bars in Matplotlib

为什么在使用 matplotlibbasemap 绘制简单的多边形集合和 3D 条形图时会出现以下情况。使用它所说的创建这些类型的图的方法 here 可以创建这种图。

然而,有趣的是,如果您不放大 "all" 以专注于一组特定的条形图,它们看起来会偏离中心,但实际上并非如此。我假设这是由于多边形倾斜而条形保持静止造成的。每当倾斜/旋转绘图时,多边形将移动到面对条形图,这很烦人,因为它破坏了绘图 imo 的外观。

有谁知道如何避免/解决这个问题?我提供了一些示例图片来描述此行为。

这可能不是解决此问题的最佳方法,如果有人有更好的方法请分享。

我发现绕过条形图的多边形并创建此偏移外观的一种非常简单的方法是简单地使多边形集合具有高透明度系数。不幸的是,这也取消了为多边形设置的面部颜色,这就是为什么我不喜欢将其作为解决方案的原因,因为您不能再有广泛的选项来操纵面部/边缘颜色。结果是以下差异:

我创建的栏也有一个 alpha 选项设置为 alpha = 0.5 如果有人想知道为什么它们看起来如此透明,当然可以更改。

不操纵多边形集合中的 alpha 选项,如下所示

map = Basemap()
figure = plot.figure()
axes = Axes3D(figure)
for polygon in map.landpolygons:
    polygons.append(polygon.get_cords())
    #alpha = 0-1 in the below 1 highest 0 lowest
    collection = PolyCollection(polygons, closed = False)
axes.add_collection3d(collection)

结果如下

collection = PolyCollection(polygons, alpha = 0, closed = False) 中给出 0 的 alpha 选项会产生以下结果

作为一个有趣的旁白,将 alpha 选项设置为 alpha = 0.4,您可以看到创建的多边形从哪里开始与条形重叠