- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 matplotlib 中的 HSV 颜色图来绘制一些向量场。有没有办法使 HSV 颜色变暗或变得更平滑,使它们看起来更像这样
比我原来的绘图颜色太亮:
最佳答案
假设您正在尝试绘制这样的 pcolor 图像:
import numpy as np
import matplotlib.pyplot as plt
y, x = np.mgrid[slice(-3, 3 + 0.05, 0.05),
slice(-3, 3 + 0.15, 0.15)]
z = (1 - x / 2. + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
# x and y are bounds, so z should be the value *inside* those bounds.
# Therefore, remove the last value from the z array.
z = z[:-1, :-1]
fig = plt.figure(1)
fig.clf()
ax = plt.gca()
pcol = ax.pcolormesh(x, y, z, cmap=plt.get_cmap('hsv'), )
plt.colorbar(pcol)
ax.set_xlim([-3, 3])
ax.set_ylim([-3, 3])
您的图像将是:
我编写了 MPL cookbook cmap_map
function 的替代实现修改颜色图。除了支持 kwargs 和 pep8 合规性之外,此版本还处理颜色图中的不连续性:
import numpy as np
from matplotlib.colors import LinearSegmentedColormap as lsc
def cmap_map(function, cmap, name='colormap_mod', N=None, gamma=None):
"""
Modify a colormap using `function` which must operate on 3-element
arrays of [r, g, b] values.
You may specify the number of colors, `N`, and the opacity, `gamma`,
value of the returned colormap. These values default to the ones in
the input `cmap`.
You may also specify a `name` for the colormap, so that it can be
loaded using plt.get_cmap(name).
"""
if N is None:
N = cmap.N
if gamma is None:
gamma = cmap._gamma
cdict = cmap._segmentdata
# Cast the steps into lists:
step_dict = {key: map(lambda x: x[0], cdict[key]) for key in cdict}
# Now get the unique steps (first column of the arrays):
step_list = np.unique(sum(step_dict.values(), []))
# 'y0', 'y1' are as defined in LinearSegmentedColormap docstring:
y0 = cmap(step_list)[:, :3]
y1 = y0.copy()[:, :3]
# Go back to catch the discontinuities, and place them into y0, y1
for iclr, key in enumerate(['red', 'green', 'blue']):
for istp, step in enumerate(step_list):
try:
ind = step_dict[key].index(step)
except ValueError:
# This step is not in this color
continue
y0[istp, iclr] = cdict[key][ind][1]
y1[istp, iclr] = cdict[key][ind][2]
# Map the colors to their new values:
y0 = np.array(map(function, y0))
y1 = np.array(map(function, y1))
# Build the new colormap (overwriting step_dict):
for iclr, clr in enumerate(['red', 'green', 'blue']):
step_dict[clr] = np.vstack((step_list, y0[:, iclr], y1[:, iclr])).T
return lsc(name, step_dict, N=N, gamma=gamma)
要使用它,只需定义一个函数来修改您的 RGB colors根据您的喜好(值从 0 到 1)并将其作为输入提供给 cmap_map
。例如,要使颜色接近您提供的图像中的颜色,您可以定义:
def darken(x, ):
return x * 0.8
dark_hsv = cmap_map(darken, plt.get_cmap('hsv'))
然后修改对pcolormesh的调用:
pcol = ax.pcolormesh(x, y, z, cmap=dark_hsv)
如果您只想使图像中的绿色变暗,您可以这样做(现在全部在一行中):
pcol = ax.pcolormesh(x, y, z,
cmap=cmap_map(lambda x: x * [1, 0.7, 1],
plt.get_cmap('hsv'))
)
关于Matplotlib 较暗的 HSV 颜色图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31321967/
我想要一个深色的 Activity 对话框主题,所以我定义如下: @color/colorPrimary @color/colorPrimaryDark @color/col
是否可以改变 UIVisualEffectView 的颜色超出标准的额外亮、亮和暗? 我需要实现明暗预设之间的阴影。 最佳答案 如果您想要类似于 UIVisualEffectView 但控制更多的东西
在这个 fiddle 上,函数完美地完成了工作,但我需要稍微调整连接。 该点击甚至需要是父 div 的 addClass(深色/浅色)(true 或 false)。 如果是深色,则添加 Bright
以前拖动到 Xcode Assets 目录中的图像可以命名如下 ... Rabbit@2x.png Rabbit@3x.png 释放拖动后,这些图像会自动分配到目录中正确的 2x 和 3x 位置。 现
如何获得 Emacs 的背景类型?例如'light或 'dark 你可以像这样定义一张脸: (defface moedict-type '((((class color) (background
我们有几个使用 mongoose 的 nodejs 守护进程,同时共享相同的持久层(包含查询的共享模块)。 在其中一个守护进程(总是同一个)中,我们随机(每周几次)从 mongoose 得到以下错误:
我是一名优秀的程序员,十分优秀!