我目前正在开发一个需要将 RGB 颜色绘制为图形的项目。颜色存储在 nx3 数组中,其中 n 是颜色数量,3 是 RGB 值。
例如:
colors = [[0.70248465, 0.10704011, 0.00900125], [0.0067905 , 0.27228963, 0.6428365 ], [0.00859376, 0.36948201, 0.18334154], [0.85125032, 0.65469019, 0.04035713]
我们还假设我有一个数组,用于存储第一种颜色的大小比率。
例如:
ratios = [1,1/2,1/3,1/5]
我想要做的是绘制这些颜色但保持尺寸比例。我当前的功能是:
def plot(colors):
plt.imshow([colors])
plt.axis('off')
plt.show()
这样绘制颜色:
而我想要这样的东西:
最佳答案
这应该可以解决问题:
EXPAND_BY = 30
expanded_colors = []
for c, r in zip(colors, ratios):
expanded_colors += [c] * int(EXPAND_BY * r)
colors = expanded_colors
为 EXPAND_BY
选择值时要小心。比率的最大公分母是正确的,但任何较大值都应该给出视觉上令人信服的结果。
它是如何工作的?
Imshow
假设它获得的每个 RGB 三元组都是一个“像素”。该解决方案只是根据其大小比例重复每个条目(像素)。
对于较大的数据来说,内存效率可能不太高,但代码效率很高 - 只需要几行额外的代码:)
关于python - 使用比率绘制 RGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70900861/