可以使用混合模式使用 Matplotlib 渲染在 Python 中绘制的点吗?

Rya*_*yan 5 python gis matplotlib python-3.x pandas

我正在绘制一系列不同大小的重叠点,matplotlib从大到小(顶部最小),但我想知道是否可以配置点以使用soft light混合模式绘制,以便您可以通过堆栈查看点而不使用 alpha 混合。

我正在加载我的数据pandas,然后使用pandas绘图函数(使用matplotlib)进行绘图,就像这个简化的例子:

import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt

roads = gpd.read_file('roads.shp')
points = gpd.read_file('points.shp')

f, ax = plt.subplots()

roads.plot(ax=ax, linewidth=.5, color='#2D1B1B', zorder=1)
points.plot(ax=ax, column='color', markersize=size, zorder=2)

plt.axis('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是情节的样子:

(我夸大了重叠)

纯色点


这是我希望它的外观:

在此示例中,每个点都使用柔光混合模式进行混合,这使得可以稍微“看穿”每个点,而不会降低重叠白色的点的饱和度或增加透明度。这使您可以轻松看到中间较大、颜色较深的圆圈,而不会像 alpha 混合那样使白色背景上较小、颜色较浅的圆圈更难看到。

在此处输入图片说明


与 Alpha 混合的区别:

像这样混合重叠点的最常见方法是使它们透明,以便重叠点加起来更强烈的颜色,但是虽然这对于可视化密度是可取的,但在这种情况下没有意义并且看起来已经褪色和坏:

在此处输入图片说明


是否可以在 中使用柔光混合模式绘制点matplotlib