【发布时间】:2017-03-18 21:49:44
【问题描述】:
我正在用matplotlib.patches 绘制一组矩形。我的代码是:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig = plt.figure(figsize=(14, 10))
for i in rectangles_list:
ax1 = fig.add_subplot(111, aspect='equal')
ax1.add_patch(patches.Rectangle(
(x[i], y[i]),
width[i],
height[i],
alpha = 1.0,
facecolor = colors_list[i]
)
)
plt.show()
矩形可能重叠,因此其中一些可能完全隐藏。你知道是否可以获得可见矩形的颜色吗?我的意思是没有完全隐藏的矩形的颜色,因此用户可以实际查看。我正在考虑一些返回像素颜色的函数,但欢迎更多聪明的想法。如果可能的话,我宁愿不使用 PIL。不幸的是,我在互联网上找不到任何解决方案。
【问题讨论】:
-
无法运行您的代码,缺少
rectangles_list。如何降低 alpha 值,以便您可以看到顶部矩形后面的任何内容。 -
我认为应该可以通过
numpy将fig.canvas.tostring_argb()包装到 ARGB 数组中以获取所有屏幕颜色。现在不确定是否继续,但可能是一个开始。 -
我认为了解这样做的目的会有所帮助。可能有比根据需要获取颜色更好的解决方案。
-
非常感谢您的所有 cmets。我不得不说我已经遵循了 unutbu 的建议,并且我已经为几个矩形的交集实现了一个复杂的公式。我不详细介绍,但是您需要一个类似于此处显示的公式来计算多个集合的并集概率statistics.about.com/od/Formulas/a/… 我也将尝试让-塞巴斯蒂安的代码。
标签: python matplotlib pixel