我有以下问题,我想创建我自己的色彩映射(红色混合紫色混合蓝色),映射到-2和+2之间的值,并希望用它来绘制我的情节中的点.然后该图应该具有右侧的色阶.
这就是我到目前为止创建地图的方式.但我不确定它是否混合颜色.
cmap = matplotlib.colors.ListedColormap(["red","violet","blue"], name='from_list', N=None)
m = cm.ScalarMappable(norm=norm, cmap=cmap)
Run Code Online (Sandbox Code Playgroud)
这样我就将颜色映射到值.
colors = itertools.cycle([m.to_rgba(1.22), ..])
Run Code Online (Sandbox Code Playgroud)
然后我绘制它:
for i in range(0, len(array_dg)):
plt.plot(array_dg[i], markers.next(),alpha=alpha[i], c=colors.next())
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1.我无法绘制色标.
2.我不完全确定我的刻度是否会产生连续(平滑)的色阶.
我正在尝试制作一个"有利于"较低值的颜色贴图,即从较暗的颜色中获取浅色需要更长的时间.目前我正在使用它作为colormap:
cmap = clr.LinearSegmentedColormap.from_list('custom blue', ['#ffff00','#002266'], N=256)
Run Code Online (Sandbox Code Playgroud)
我正在绘制一个圆柱体以查看效果(请参阅帖子末尾的圆柱代码),这是运行代码时会发生的情况:
如你所见,这是非常"线性"的.颜色开始沿着圆柱体的一半变化.有没有办法增加颜色开始快速变化的阈值?即我只想要非常高的数字才能获得最亮的黄色.谢谢.
from matplotlib import cm
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.linalg import norm
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import numpy as np
import math
import mpl_toolkits.mplot3d.art3d as art3d
import matplotlib.colors as clr
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
origin = [0,0,0]
#radius = R
p0 = np.array(origin)
p1 = np.array([8, 8, 8])
origin = np.array(origin)
R = 1
#vector in direction of axis
v = p1 …Run Code Online (Sandbox Code Playgroud) 我有一系列在 -180 到 180 之间变化的值,我是一个关于零对称的颜色图,即 -180 的颜色对于 180 值是相同的,依此类推。这是我第一次使用 matplotlib 我只是没有找到使它围绕零对称的方法,负片总是与正片具有不同的颜色。非常感谢。