以统一的方式缩放值?
Scale values in uniform way?
我有一个数字数组,我将其转换为百分比([0 .. 1] 范围内的值)。然后我将其转换为灰色。
示例:
percentage = nums/float(nums.max())
问题是大多数值都是小数字和几个大数字。这导致大部分 % 都在 0.01 左右。
结果是这转化为 ~~白色,在绘图时变得不可见。
顺便说一句,我必须保留所有值。
我试图缩小异常值 abit ,但即使这样也无济于事 ;(
colors[abs(colors - np.mean(colors)) > 2 * np.std(colors)] = colors.mean() + 2 * np.std(colors)
c = colors/float(colors.max()) #convert to percentage
这样做的目的是将异常值缩小到平均值的 2std。
我想我需要的是某种 "step-wise" 函数,它以均匀缩放的方式对值进行分组
在 0 .. 1 范围内,以便每个点都接收到可见颜色,但仍保持一定的对比度,以便区分值。
PS> 可能范围必须在 0.1 到 1 之间!
=====
到目前为止,这是某种解决方案:
c += 0.15 * (1-c)
想到平时的修图,剪掉一些值会不会是一种解决方案?然后,通常的排序可能会有所帮助,例如
highlights=np.sort(nums)[-xyz:]
只需将这些值设置为下一个较小的值即可设置为白色。
当然这可能是对数据的严重操纵,但这是您在调整颜色曲线时通常在 GIMP 或类似的照片处理软件中所做的。因此,如果这些异常值就像不稳定的像素,而您实际上对中间的灰度值感兴趣,这可能会有所帮助。
我希望,我得到了你的兴趣,
乐帕克
到目前为止,这是最好的解决方案:
c += 0.15 * (1-c)
我有一个数字数组,我将其转换为百分比([0 .. 1] 范围内的值)。然后我将其转换为灰色。
示例:
percentage = nums/float(nums.max())
问题是大多数值都是小数字和几个大数字。这导致大部分 % 都在 0.01 左右。 结果是这转化为 ~~白色,在绘图时变得不可见。 顺便说一句,我必须保留所有值。
我试图缩小异常值 abit ,但即使这样也无济于事 ;(
colors[abs(colors - np.mean(colors)) > 2 * np.std(colors)] = colors.mean() + 2 * np.std(colors)
c = colors/float(colors.max()) #convert to percentage
这样做的目的是将异常值缩小到平均值的 2std。
我想我需要的是某种 "step-wise" 函数,它以均匀缩放的方式对值进行分组 在 0 .. 1 范围内,以便每个点都接收到可见颜色,但仍保持一定的对比度,以便区分值。
PS> 可能范围必须在 0.1 到 1 之间!
=====
到目前为止,这是某种解决方案:
c += 0.15 * (1-c)
想到平时的修图,剪掉一些值会不会是一种解决方案?然后,通常的排序可能会有所帮助,例如
highlights=np.sort(nums)[-xyz:]
只需将这些值设置为下一个较小的值即可设置为白色。
当然这可能是对数据的严重操纵,但这是您在调整颜色曲线时通常在 GIMP 或类似的照片处理软件中所做的。因此,如果这些异常值就像不稳定的像素,而您实际上对中间的灰度值感兴趣,这可能会有所帮助。
我希望,我得到了你的兴趣, 乐帕克
到目前为止,这是最好的解决方案:
c += 0.15 * (1-c)