plot using with characters which are cell and numeric data.

data=[1;2;3;4;5;6];
ids={'12.1a';'1.2b';'1.3c';'1.4d';'1.7e';'1.8f'}
%I wanna plot the data and ids like, plot(ids,data,'b') but Conversion to double from cell is not possible error occurs.
%How I can handle this cellarray for plot?

 采纳的回答

data=[1;2;3;4;5;6]
ids={'12.1a';'1.2b';'1.3c';'1.4d';'1.7e';'1.8f'}
plot(data,'b')
set(gca,'XTick',1:numel(ids))
set(gca,'XTickLabel',ids)

4 个评论

Thank you for your answer. I need to rotate ids (to write vertically), how can I do that?
sometimes ids would be very large (hundreds) so they cannot be easily readable.
If you have the latest version of Matlab add this
h=gca,
h. XTickLabelRotation=90
If not, reduce the number of ticks
ids={'12.1a';'1.2b';'1.3c';'1.4d';'1.7e';'1.8f'}
data=1:24
ids=repmat({'12.1a';'1.2b';'1.3c';'1.4d';'1.7e';'1.8f'},4,1)
plot(data,'b')
NumTick=8 % number of ticks
xticks=linspace(1,numel(data),NumTick)
set(gca,'XTick',xticks)
set(gca,'XTickLabel',ids)
I downloaded Rotate Tick Label and applied it. It worked well but I'm still having difficulty for scale. Hunderds of ids seem very close. Can I seperate them a little bit to reading more easily?

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Annotations 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by