Setting DisplayName for a bar graph
31 次查看(过去 30 天)
显示 更早的评论
When using the plot() command, one can set the DisplayName property of the plotted lines, and display them in the legend, like so:
hp=plot(1:10,[1:10;2:11]','DisplayName',{'line 1','line 2'});
legend(hp)
This approach does not work for a bar graph:
hb=bar(1:10,[1:10;2:11]','DisplayName',{'line 1','line 2'}); % Error!
legend(hb)
I know I can "get" the DisplayName property of the bars, like so:
hb=bar(1:10,[1:10;2:11]');
get(hb,'DisplayName')
But is there a way to set the DisplayName property in a vectorized way?
I tried
set(hb,'DisplayName',{'bar 1','bar 2'})
but the syntax requires a string input there, and balks at the cell array.
0 个评论
采纳的回答
Patrick Kalita
2012-1-5
set(H,pn,MxN_pv) sets n property values on each of m graphics objects, where m = length(H) and n is equal to the number of property names contained in the cell array pn. This allows you to set a given group of properties to different values on each object.
In this case the length of H is 2 and we're setting 1 property. Therefore the cell array of property names pn will be 1-by-1 and the cell array of property values pv will be 2-by-1:
hb=bar(1:10,[1:10;2:11]');
set( hb, {'DisplayName'}, {'foo'; 'bar'} );
legend show
更多回答(1 个)
Thalia Nikolaidou
2017-11-10
figure1 = figure; axes1 = axes('Parent',figure1); hold(axes1,'on'); bar1 = bar(data_here); set(axes1,'XTickLabel',data_cell_array_labels_here);
It needs to set the "axes" not the gcs or the DisplayName!!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Discrete Data Plots 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!