python - 使用比率绘制 RGB 颜色

标签 python python-3.x matplotlib imshow

我目前正在开发一个需要将 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()

这样绘制颜色:

imshow

而我想要这样的东西:

enter image description here

最佳答案

这应该可以解决问题:

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/

相关文章:

python - Py_initialize/Py_Finalize 不能与 numpy 一起工作两次

python - Apache Beam ETL 维度表加载,有什么例子吗?

python - 在 Linux Python/pip 上构建 cyrus-sasl 后无法看到 sasl.h 文件

python - wand - 文本换行 - 基于图像文件大小

python - 删除字符串中的数字和所有连接字符

python - 计算有效数(或最大公共(public)前缀)

python - 确定 a、b 中是否存在数字 n1、n2 和 c 中的 n3,使得 n1 + n2 = n3 [ftt,多项式乘法]

python - 填充 seaborn/matplotlib 中两个正态分布之间的重叠区域

python - 如何对离散轴上的刻度标签进行排序(0 像条形图一样索引)

python - 沿着聚类图的特定轴添加带有索引特定数据的条形图