添加传奇绘制彩色colormap函数

252(30天)
我用现在的情节点的颜色是由一个代码(1 - 3)3列的矩阵。我似乎无法找出如何让matlab为这个而不是colorbar一个传奇。因为他们正在策划一个自动传奇函数只包含一个点。目前我刚在illustrator中添加一个传奇,但这有点费时的图,我宁愿在matlab完成。有可能要么从头做一个传奇和指定每个条目和标签或matlab自动去做吗?谢谢!
我用的代码和图如下:
x = [HL_conpor HL_perm HL_class];
颜色= (0.8 - 0.8 0;
1 0.5 0
1 0 0
]; %
散射(x (: 1) x (:, 2), [], x (:, 3), “填充” )
集(gca), “YScale” , “日志” )
包含( “连接孔隙度(\ phi_c)” );
ylabel ( “渗透(m ^ 2)” );
colormap(颜色)
legend_labels = { “VDP1” , “VDP2” , “VDP3” };
传奇(legend_labels “位置” , “最佳” );

接受的答案

戴夫B
戴夫B 2021年8月12日
编辑:戴夫B 2021年8月12日
当你为散射指定CData(颜色输入),MATLAB使用colormapping情节数据和colorbar描述的映射。散射是CData的思维是连续的,但你认为颜色是离散的。
通常有两种方法来解决这个问题…
问题情况和假数据
x = randn (100 1);
y = randn (100 1);
c =兰迪(3100 1);
tiledlayout (2, 2)
nexttile;
散射(x, y, 30日,c,“f”)
colormap ([1 0 0;0 1 0;0 0 1])
colorbar (“滴答”(4/3 2 8/3),“TickLabels”,(“红”“绿”“蓝”])
标题(“问题版本”)
解决方案1 :使用等等,使分离散射物体,并使用colororder定义颜色(也可以显式地指定颜色在每个散射,只要有一个颜色每个散射):
nexttile (3)
持有
散射(x (c = = 1), y (c = = 1), 30岁,“填充”)
散射(x (c = = 2), y (c = = 2), 30岁,“填充”)
散射(x (c = = 3), y (c = = 3), 30岁,“填充”)
colororder ([1 0 0 0 1 0;0 0 1])
传奇([“红”“绿”“蓝”])
标题(“3散射”,“(colororder代替colormap)”)
解决方案2 :创建一些隐藏的散射,将他们的传说:
nexttile (4)
散射(x, y, 30日,c,“f”)
持有
h = gobject (3,1);
h(1) =散射(南、南“r”,“填充”);
h(2) =散射(南、南‘g’,“填充”);
h(3) =散射(南、南“b”,“填充”);
传奇(h, [“红”“绿”“蓝”])
标题(“3隐藏散射”)
colororder更多信息,请参阅 这个文档页面

答案(1)

斯科特·麦肯齐
斯科特·麦肯齐 2021年8月12日
一个方法是做三散射,一个用于每个值在第三列数据。这是一般的想法使用修改后的版本的代码:
1)x =[兰德(25日兰德(25日1)兰迪(1)3、25日];
颜色= (0.8 - 0.8 0;1 0.5 0;1 0 1];
c1 = x (:, 3) = = 1;
c2 = x (:, 3) = = 2;
c3 = x (:, 3) = = 3;
散射(x (c1, 1), x (c1、2), 100年,“填充”);
持有;
散射(x (c2, 1), x (c2, 2), 100年,“填充”);
散射(x (c3, 1), x (c3, 2), 100年,“填充”);
集(gca),“YScale”,“日志”)
包含(“连接孔隙度(\ phi_c)”);
ylabel (“渗透(m ^ 2)”);
colormap(颜色)
legend_labels = {“VDP1”,“VDP2”,“VDP3”};
传奇(legend_labels“位置”,“最佳”);

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!