How to plot a text data column from an excel file in MATLAB?

Hello, I have imported in Matlab an excel file that contains two columns, one with numeric values, and the other one with text values. The first 5 rows can be seen below:
ABF-E 0.34
HJK-D -0.54
GHKL-I 1.34
FPLO-5 2.3
KKJLL-T 0.98
I need to plot the numeric column on the Y axis and the text column on the X axis. I can easily work with the numeric column using xlsread and plot, but I can not manage plotting the text column. How could I do it?.
I have written the following code, but I don't know what to do for the x Axis:
filename = 'MyData.xlsx';
Sheet = 2
xlRange = 'B1:B60';
Yaxis = xlsread (filename,Sheet,xlRange);
Xaxis = ????????;
plot(xAxis,Yaxis)
I would be very grateful if somebody could help me.

2 Kommentare

What does it mean to "plot" a column of text???
I'm trying to build a line graph, where the values of the first column of my excel file, which contains text values, should represent the X axis of my graph. And the second column of my excel file, should represent the Y axis. I can easily create graphs when the values of the excel file are of numeric values, but I can't manage plotting text values against numeric values.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

sixwwwwww
sixwwwwww am 6 Dez. 2013
you can do it as follows:
[num, txt, raw] = xlsread('filename.xlsx', 1);
plot(num)
set(gca,'Xtick',1:numel(num),'XTickLabel',txt)
The last line of the code set the labels for data given in first column of your excel sheet

4 Kommentare

Azzi Abdelmalek
Azzi Abdelmalek am 6 Dez. 2013
Bearbeitet: Azzi Abdelmalek am 6 Dez. 2013
If numel(num) is big, XTickLabel will be a problem
Yes but it is the only way around to get this. Also there will be a problem if the first column will also contain number and then they will be in the 'num' variable not 'txt'. But still this method can work for small number of data points and correct data format in excel
Hello sixwwwwww, thanks for your answer. That works for the Xaxis, but where in the code could I put my Yaxis variable so that the Xaxis values are plotted against the Yaxis values?.
here is the code for plotting both x and y values on x-axis and y-axis respectively:
[num, txt, raw] = xlsread('filename.xlsx', 1);
plot(num)
num = sort(num);
for i = 1:numel(num)
NumCell(i) = {num2str(num(i))};
end
set(gca,'Xtick',1:numel(num),'XTickLabel',txt, 'Ytick', num,'YTickLabel',NumCell)

Melden Sie sich an, um zu kommentieren.

Thre is no x-axis data in your Excell file
Yaxis = xlsread (filename,Sheet);
plot(Yaxis)

5 Kommentare

Hello Azzi, Why did you say that there is not x axis data in my excel file?. I'm trying to plot the first column, the one that contains text data on the x axis against the second column (numeric column) on the y axis. Could I provide you more information?
What is the size of your data?
60 rows x 2 columns
Where will you put 60 worsds like ABF-E in X-axis?
yes, I have attached an image of what I'm trying to manage. I have done it in excel but I'm trying to do the same in Matlab. In the image, the graph is designed with just 5 text values on the X-axis, but I have 60 like that in my excel file.

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 6 Dez. 2013

Kommentiert:

am 7 Dez. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by