p**z 发帖数: 65 | 1 使用 matplotlib 在同一张图上画很多条曲线时,手工选择每条曲线的颜色是很麻烦的
事。如果颜色选得相近,眼睛不容易区分;如果用常见的非常不同的颜色(比如Matlab
常用的 y m c r g b w k 这些),选择又很有限,曲线一多就不够用了。用上不同线
形和 marker 形状固然也可以区分,不过有时候这些要用来区分别的东西(比如左右两
边的y轴)。
一个办法是从象 jet 这样的色彩鲜明的 colormap 中,自动挑选“等距”的颜色。在
一个 colormap 中,颜色是用一个 0 到 1 之间的浮点数指定的,所以“等距”很容易
实现。例子:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
...
for n in range(ncurves):
plt.plot(xs[n], ys[n], color=cm.jet(n/(ncurves-1))
附图:常见 colormaps
(产生这张图的源代码在:http://wiki.scipy.org/Cookbook/Matplotlib/Sh... 阅读全帖 |
|
PK 发帖数: 1153 | 2 有个16位的灰度图像加上伪彩,觉得jet的色彩太少 hsv 相对多一些
亮度的解释不大满意
自己不太会做colormap,不知道有没有做好的16位colormap下载阿
多谢多谢 |
|
v***r 发帖数: 1046 | 3 heatmap彩图用matlab的HSV colormap代表数据大小,已经存成图形文件了。现在想转成黑白梯
度,有什么办法吗?不想重新画图。请达人指教,多谢! |
|
z*y 发帖数: 1311 | 4 【 以下文字转载自 Linux 讨论区 】
【 原文由 zyy 所发表 】
when I run it, it says:
Warning: Cannot allocate colormap entry for "#d3d3d3"
Warning: Cannot allocate colormap entry for "#8b0000"
Warning: Cannot allocate colormap entry for "DarkRed"
Warning: Cannot allocate colormap entry for "#006400"
Warning: Cannot allocate colormap entry for "DarkGreen"
Warning: Cannot allocate colormap entry for "#cdcd00"
Warning: Cannot allocate colormap entry for "Yellow3"
Warning: Cannot allocate colormap entry for "#cd00cd"
Warn |
|
r****y 发帖数: 1437 | 5 I have similar question before. My answers are like
(1) It is impossible to make 2 colormaps in one simple 2-D plot
(2) A naive but complicated approach
make up your own colormap, like
[jet, gray]
Then for all data in your regio II, make some scaling and adding
to let them scaled in the range of [black, white] in your colormap.
need debuggings to adjust the colormap and the values to make this
work.
My heartly recomendation: photosh |
|
b*k 发帖数: 27 | 6 Define your own colormap
you can type jet, rgb, or gray in matlab to
look at the format of the color map matrix and define
yours by using the same format with different
dimension and use colormap(map) to activate the colormap
where, 'map' is the colormap matrix of your own |
|
k*k 发帖数: 508 | 7 我试着这样:
figure, hold on;
colormap('autumn');
mesh(z1);
colormap('winter');
mesh(z2);
结果前面一个 colormap 好像就被后面的覆盖了。有什么
办法可以把两个 mesh 弄成不一样的颜色么?
谢谢! |
|
t****t 发帖数: 6806 | 8 colormap是figure的属性, 所以你一张图上的两个伪彩对象肯定用的是同一个colormap
办法是把两个colormap拼起来, 一个mesh用一半
你需要设置clim属性, 以起合理的scale/shift两个mesh的值 |
|
z***e 发帖数: 22 | 9 % matlab DEMO
[c,h] = contour(peaks); clabel(c,h), colorbar
% 'reverse' colormap
cmp = colormap; colormap(cmp(end:-1:1,:));
In fact, you can specify any color scheme. |
|
p*l 发帖数: 1359 | 10 最近一片文章被批得狗血淋头。我也奇怪,大家的测量结果从histogram上看都是差不
多精度的,都是jet colormap画图,为什么我们的图这么难看,人家的图那么好看呢?
今天定一看,人家把jet colormap 调地极其不线性,把偏离均值比较远的图像点都偷
偷藏起来了。我也要去调 colorbar! |
|
v***r 发帖数: 1046 | 11 【 以下文字转载自 Biology 讨论区 】
发信人: valar (和光同尘), 信区: Biology
标 题: 请教一个彩图转黑白梯度的问题
发信站: BBS 未名空间站 (Tue Nov 15 17:19:01 2011, 美东)
彩图是用HSV colormap代表不同的数据大小,已经存成tiff文件了。现在想把图转成黑
白梯度,但是HSV colormap转化gradient时,极大值和极小值都变成深黑的。哪位制图
达人指点迷津,不胜感激! |
|
v***r 发帖数: 1046 | 12 【 以下文字转载自 Biology 讨论区 】
发信人: valar (和光同尘), 信区: Biology
标 题: 请教一个彩图转黑白梯度的问题
发信站: BBS 未名空间站 (Tue Nov 15 17:19:01 2011, 美东)
heatmap彩图是用HSV colormap代表不同的数据大小,已经存成tiff文件了。现在想把图转成黑
白梯度,但是HSV colormap转化gradient时,极大值和极小值都变成深黑的。哪位制图
达人指点迷津,不胜感激! |
|
v***r 发帖数: 1046 | 13 【 以下文字转载自 Biology 讨论区 】
发信人: valar (和光同尘), 信区: Biology
标 题: 请教一个彩图转黑白梯度的问题
发信站: BBS 未名空间站 (Tue Nov 15 17:19:01 2011, 美东)
彩图是用HSV colormap代表不同的数据大小,已经存成tiff文件了。现在想把图转成黑
白梯度,但是HSV colormap转化gradient时,极大值和极小值都变成深黑的。哪位制图
达人指点迷津,不胜感激! |
|
j**u 发帖数: 6059 | 14 colormap其实是个矩阵,你只要把现在的colormap矩阵倒过来就行了。 |
|
m**k 发帖数: 290 | 15 There are multiple ways. You can
* change ls color LSCORLORS env (man ls)
* change console colormap if you are in console
* change your xterminal colormap |
|
r****y 发帖数: 1437 | 16 【 以下文字转载自 Computation 讨论区 】
发信人: rossby (五十岚已夜), 信区: Computation
标 题: 我来问个问题
发信站: BBS 未名空间站 (Tue Jan 22 10:48:15 2008), 转信
有一样彩色图,比如用matlab default colormap, jet, 画的,
colorbar的最大值就是红色,最小值就是蓝色。
如果你在photoshop或者别的软件里面单纯的把这个RGB->Grayscale,
得到的灰度图中最大值和最小值就都是黑色,正中间值却是白色。
有没有一个简单的办法,在photoshop里面把这个conversion变成
最小值是白色,最大值是黑色?
别告诉我在matlab里面换个colormap(gray)重画一遍。 |
|
v***r 发帖数: 1046 | 17 heatmap彩图是用HSV colormap代表不同的数据大小,已经存成tiff文件了。现在想把图转成黑
白梯度,但是HSV colormap转化gradient时,极大值和极小值都变成深黑的。哪位制图
达人指点迷津,不胜感激! |
|
r****y 发帖数: 1437 | 18 我碰到过类似的问题,不过不是image,也许我的方法对你有参考价值
基本原理,在matlab无论三维还是二维平面图,其handle都是三维的。
你先画一个图出来,然后将其handle里面的z坐标设到一个别的值; hold; 再
开始画 第二张图,如果第一张图是底图,那么第第二张的z比第二张的z大就行了。
还有一个问题,这个colormap的问题,两张图用不同的colormap在matlab
里面比较麻烦。我的poor man's approach就是做contour的时候记住它的handle,
handle.child里面有每个contour line的handle, 直接将这些contour line
人为赋予不同的颜色值或者相同的颜色值(根据你的需要而定)。
俺们这行经常画些恶复杂的图,底图是世界地图,然后用contour shading代表
一个变量,contour lines代表另外一个变量,带箭头的streamlines表示二维速度场。
这种时候matlab就很不照了,操作起来相当麻烦,呵呵。 |
|
r****y 发帖数: 1437 | 19 有一样彩色图,比如用matlab default colormap, jet, 画的,
colorbar的最大值就是红色,最小值就是蓝色。
如果你在photoshop或者别的软件里面单纯的把这个RGB->Grayscale,
得到的灰度图中最大值和最小值就都是黑色,正中间值却是白色。
有没有一个简单的办法,在photoshop里面把这个conversion变成
最小值是白色,最大值是黑色?
别告诉我在matlab里面换个colormap(gray)重画一遍。 |
|
j**u 发帖数: 6059 | 20 I agree you can't have two colormaps in one plot. I have one idea that
generate a pseudo-gray image to show gray-scale image. I only know how to
highlight a ROI with a solid co
lor. For example,
ROI is a logic matrix consisting 0's and 1's
im_r = im.*ROI.*3 ; % 3 can be any number much larger than 1
im_rgb = cat(3, im_r, im, im) ;
imagesc(im_rgb) % this will show a pseudo-gray scale image with ROI highligh
ted with red color
Now my question is how to pot ROI just like using a colormap(jet), not |
|
j**u 发帖数: 6059 | 21 原来你要画成这样。你可以设置自己的colormap,把你的Z值对应到colormap,这样画
点就可以画上不同的颜色。 |
|
d****u 发帖数: 8 | 22 你可真会省标题, 一标题多问题.
用自己的colormap就行了. 要啥颜色就啥颜色, 要红就红, 要黑就黑, 自己设,
没有比这更爽的了.
T=
0 0 3 3 3
1 3 2 2 1
3 0 0 0 1
1 1 1 0 0
0 0 3 3 2
mymap =
0 0 0 deep black;
0.3500 0.3500 0.3500 deep gray;
0.5500 0.5500 0.5500 gray;
1.0000 1.0000 1.0000 white;
subimage(T/3);
colormap(mymap); |
|
v***r 发帖数: 1046 | 23 【 以下文字转载自 Biology 讨论区 】
发信人: valar (和光同尘), 信区: Biology
标 题: 请教一个彩图转黑白梯度的问题
发信站: BBS 未名空间站 (Tue Nov 15 17:19:01 2011, 美东)
彩图是用HSV colormap代表不同的数据大小,已经存成tiff文件了。现在想把图转成黑
白梯度,但是HSV colormap转化gradient时,极大值和极小值都变成深黑的。哪位制图
达人指点迷津,不胜感激! |
|
k*****r 发帖数: 21039 | 24 [img, map]=imread("test.bmp");
figure(1);imagesc(img);colormap(map);axis image; axis off;
print('-depsc2', "test.eps");
close(1); |
|
r*******g 发帖数: 43 | 25 matlab, image, 可以自己写colormap |
|
c****p 发帖数: 6474 | 26 那我得把坐标轴去掉,
然后把colormap弄成金黄色的。。。 |
|
|
h******g 发帖数: 11250 | 28 用pcolor画等高线图,但某个区域数据未知,如果能画成灰色?
其他已知区域还是正常的彩虹色
我打算把那块区域assign成Inf,但怎么设置colormap可以把Inf设成灰色? |
|
b*******t 发帖数: 33714 | 29 先assign inf,call pcolor
然后
color = [[.5 .5 .5]; hsv];
colormap(color); |
|
D***D 发帖数: 5321 | 30 load penny.mat
contour(P,15)
colormap(copper)
axis ij square |
|
k*****e 发帖数: 22013 | 31 clf; clc; clear all;
syms x y
eq1 = ((x/7)^2*sqrt(abs(abs(x)-3)/(abs(x)-3))+(y/3)^2*sqrt(abs(y+3/7*sqrt(33
))/(y+3/7*sqrt(33)))-1);
eq2 = (abs(x/2)-((3*sqrt(33)-7)/112)*x^2-3+sqrt(1-(abs(abs(x)-2)-1)^2)-y);
eq3 = (9*sqrt(abs((abs(x)-1)*(abs(x)-.75))/((1-abs(x))*(abs(x)-.75)))-8*abs(
x)-y);
eq4 = (3*abs(x)+.75*sqrt(abs((abs(x)-.75)*(abs(x)-.5))/((.75-abs(x))*(abs(x)
-.5)))-y);
eq5 = (2.25*sqrt(abs((x-.5)*(x+.5))/((.5-x)*(.5+x)))-y);
eq6 = (6*sqrt(10)/7+(1.5-.5*abs(x))*sqrt(abs(abs(x)-1)/(abs(x)-1... 阅读全帖 |
|
b******n 发帖数: 147 | 32 【 以下文字转载自 Mathematics 讨论区,原文如下 】
发信人: beautumn (星星草), 信区: Mathematics
标 题: image display--MATLAB 求助
发信站: Unknown Space - 未名空间 (Fri Feb 4 00:42:41 2005) WWW-POST
I am taking a course named Digital Image Processing this semester. Now I
encountered a probelm to display the image in matlab. say, I have a matrix
A=[1 0 1;0 0 0;1 1 0] and I want to display it the bit "1" as black color and
"0" as white color. I tried image(), colormap(), gray().. but the figure is
always displayed in a single color. |
|
f*******o 发帖数: 312 | 33 画了这张3D图,表面用“Blended CData (interp)”,从上到下有红到蓝转变,现在想
要反过来变成蓝到红,看似很简单,但我总是搞不定!Google了一下,好像说可以用“
Colormap Editor”改颜色的配置,但是我的Matlab里没有(Version 6.0.0.88
Release 12)!哪位大牛可以帮帮我啊!谢谢! |
|
|
W*W 发帖数: 293 | 35 数据是3列,第一列是x坐标,第二列是y坐标,第三列是对应的值。(x,y不一定均匀分
布),我需要画一个二维的colormap.通常这样的图需要data是一个矩阵,然后用contourf画,但现在data只是一列数。
请问怎么画出对应的图? 我用trimesh可以画出三维的,但不知道二维的怎么话。 |
|
r****t 发帖数: 10904 | 36 读点 matlab colormap 的文档吧,我不知道。
我用 matplotlib 里面是
scatter(x,y,z,color=mappable)
mappable 是一个 mapping object, 里面你可以做很多种不同的 mapping.
matlab 里面应该是类似的。
interpolate/extrapolate in python 前几天有人在这儿也问了,我回在
那个帖子后面了。 |
|
|
g***i 发帖数: 90 | 38 use "image".
and use colormap to define your desired color pattern |
|
a*z 发帖数: 141 | 39 【 以下文字转载自 EE 讨论区 】
【 原文由 ANZ 所发表 】
不好意思,又有个新问题,
在subplot的三幅子图里,希望第一幅是彩图,第二三幅是灰度图,
怎么处理,因为在画第三幅后用colormap(gray),所有图都成了灰度图。
谢谢 |
|
r****y 发帖数: 1437 | 40 If now you have (x, y, z)
(x, y, t)
matrices z and t are different a lot, so cannot use one colormap to cover
both of them.
Then how you can make a contour plot with one filled contours and one
contour-lines only?
If you just use
contourf(x, y, z);
hold all;
contour(x, y, t);
the second contour command will overwrite.
any good ideas? |
|
r****y 发帖数: 1437 | 41 sure
you define you own color table, let it be
[1 1 1]
monotonically changes to [0 0 0]
e.g cmap = repmat([0:1/63:1]', 1, 3);
colormap(cmap);
If you use colorbar before this set of commands,
replot your colorbar to reflect the changes as well.
|
|
j*n 发帖数: 1205 | 42 matlab?
不会用程序搞的,推荐用
colormapeditor
easy |
|
s***t 发帖数: 195 | 43 matlab by default use different colors for different lines if you
plot them in one plot function.
if you want to use your own colors, you can define a color matrix (Nx3)
in rgb colors. each time take a row from that matrix and plot using that
color by plot(x, y, 'Color', colors(ii,:)).
you can also get the default line colors used by matlab by
colors = colormap('Lines') |
|
j**u 发帖数: 6059 | 44 有一个二位矩阵,用imagesc和colormap(jet)可以显示一个彩色的图像IM1,如果选择c
olormap(gray)就生成黑白图像IM2。现在想只在一个选的区域里面(ROI)里面保留IM1
,其他的区域里面都是IM2,请问如果在matlab里面做到? |
|
j**u 发帖数: 6059 | 45 靠,才知道colormap()返回RGB矩阵,太土了。
3D
matrix
mysel |
|
h***a 发帖数: 48 | 46 有一组数据A,对应一系列的点,这些点是3d坐标(x,y,z)下的,也就是怎么在3d空间里
面画数据A的colormap的图?matlab好像只能画(x,y)下的. |
|
h*******y 发帖数: 1563 | 47 不太明白你的意思, colormap本身不就是3D的么? |
|
h***a 发帖数: 48 | 48 例如知道一个地域的几何坐标,每个点上的信号是我所说的数据,如果用colormap的形
式把信号强弱给画出来?matlab只能画2维地域,信号是第三维,而我的问题是3维地域
,信号是第四维,谢谢回复。 |
|
l********a 发帖数: 1154 | 49 梯度还是灰度图啊?
看意思你已经有了heatmap,应该不同区域有差别的,转灰度就行
直接
rgbimg = hsv2rgb(hsvimg);
grayimg = rgb2gray(rgbimg);
figure,imshow(grayimg,[]);
这几个都是图像处理工具箱内置函数 |
|
j**u 发帖数: 6059 | 50 【 以下文字转载自 Computation 讨论区 】
发信人: jzxu (自然), 信区: Computation
标 题: 问个matlab问题,50伪币酬谢
发信站: BBS 未名空间站 (Fri Mar 14 22:53:28 2008), 转信
有一个二位矩阵,用imagesc和colormap(jet)可以显示一个彩色的图像IM1,如果选择c
olormap(gray)就生成黑白图像IM2。现在想只在一个选的区域里面(ROI)里面保留IM1
,其他的区域里面都是IM2,请问如果在matlab里面做到? |
|