回答
您可以创建这种绘制自己很容易地使用内置功能imagesc
和text
,并调整图形对象的许多参数。这里有一个例子:
mat = rand(5); %# A 5-by-5 matrix of random values from 0 to 1
imagesc(mat); %# Create a colored plot of the matrix values
colormap(flipud(gray)); %# Change the colormap to gray (so higher values are
%# black and lower values are white)
textStrings = num2str(mat(:),'%0.2f'); %# Create strings from the matrix values
textStrings = strtrim(cellstr(textStrings)); %# Remove any space padding
[x,y] = meshgrid(1:5); %# Create x and y coordinates for the strings
hStrings = text(x(:),y(:),textStrings(:),... %# Plot the strings
'HorizontalAlignment','center');
midValue = mean(get(gca,'CLim')); %# Get the middle value of the color range
textColors = repmat(mat(:) > midValue,1,3); %# Choose white or black for the
%# text color of the strings so
%# they can be easily seen over
%# the background color
set(hStrings,{'Color'},num2cell(textColors,2)); %# Change the text colors
set(gca,'XTick',1:5,... %# Change the axes tick marks
'XTickLabel',{'A','B','C','D','E'},... %# and tick labels
'YTick',1:5,...
'YTickLabel',{'A','B','C','D','E'},...
'TickLength',[0 0]);
,这里是这个生成数字:
如果遇到与x轴刻度标签你选择太宽,彼此重叠的麻烦,这里的你如何处理它:MATLAB的
新版本:不知道这已经rsion已添加,但在较新版本中,轴对象现在具有'{X | Y | Z} TickLabelRotation',它允许您旋转标签并使其更好地适应它们。
旧版本的MATLAB:对于老版本,你可以找到一些MathWorks File Exchange提交,可以从Brian Katz旋转刻度标签文本,像XTICKLABEL_ROTATE。
我希望你能说服Matlab来绘制,如果你看看文件交换你会发现已经有人写的代码。但如果你没有代码,使用MS Excel会更容易。
编辑:所以我给了这个更多的想法,这就是我想出的。我还没有掌握如何发布图形,所以请相信我,这会带领您找到解决方案。但使用Excel会更容易。
首先用你的数据值定义一个矩阵;我在下面称为矩阵G
。然后执行命令:
image(G);
colormap(gray)
现在,我不得不做一些摆弄周围,重新调整数据,以获得良好的图形,但这应该产生与数值轴的灰度的情节。现在,进入你的数字窗口并打开绘图工具。
选择X轴并点击Ticks
按钮。您现在需要做的就是将标签编辑为您想要的文本。对Y轴做同样的事情。将数字写在图上的正方形中 - 使用“注解”菜单中的“文本框”。
经过大量的摆弄之后,你会得到你想要的图形。此时,我建议您选择菜单命令File |生成M-File并做到这一点。如果你想在将来以编程方式创建这样的图形,只需将生成的M文件转换为适当的功能,即可实现所需功能。
但在Excel中它仍然更容易。
h = imagesc(magic(8))
impixelregion(h)
http://www.mathworks.com/help/toolbox/images/ref/impixelregion.html
需要图像处理工具箱
+1:这是一个非常疯狂的方法。我希望OP能够尝试这... – 2010-10-15 15:02:02
- 1. 显示矩阵值和颜色地图
- 2. 使用替代颜色的Power BI表格矩阵可视化
- 3. 如何用特定颜色绘制矩阵中的矩阵值
- 4. 如何在没有Matlab的情况下显示颜色和值的矩阵?
- 5. 可视化矩阵
- 6. 如何在矩阵显示颜色数(MATLAB)
- 7. OpenGL颜色矩阵
- 8. 剧情的矩阵,值颜色
- 9. 可视化距离矩阵
- 10. 可视化数据矩阵
- 11. 如何可视化颜色映射?
- 12. 如何使用matplotlib绘制没有颜色的网格化混淆矩阵?
- 13. colorTransform等效颜色矩阵
- 14. 如果特定值显示,删除矩阵中的矩阵
- 15. html选择显示值与空的颜色格和显示值
- 16. pyplot相关矩阵可视化使用python的巨大矩阵(700×700)
- 17. 在矩阵中存储矩阵的可视化基础6
- 18. 显示矩阵
- 19. 用C#显示颜色的颜色?
- 20. 可视化完整互相关矩阵
- 21. 互动热图/矩阵可视化
- 22. 可视化numpy数组/矩阵
- 23. 双向电力矩阵可视化
- 24. 如何显示矩阵内的坐标?
- 25. 颜色的二元矩阵matplotlib
- 26. OpenGl - 矩阵之间的颜色()
- 27. 如何在图像视图中显示色彩颜色
- 28. 颜色某些点不同的颜色矩阵matplotlib
- 29. 软化矩阵svg过滤器中的颜色
- 30. 将数据压回矩阵并使用imshow显示矩阵
+1:比我提供的更好的展示。 – 2010-10-15 16:04:20
对于更一般的解决方案,您应该比较'mean(get(gca,'CLim'))''而不是'0.5'来确定灰度色彩地图背景上文本的颜色。 – Amro 2010-10-15 17:50:14
@Amro:好的建议!我将它整合到代码中。 – gnovice 2010-10-15 18:09:38