How to create plot from the data in .txt file ?

Hello All,
I wanted to create a 2D plot of spatial density versus altitude using the data in .txt file, however, when i tried converting first the data into excel format it did not work the best and eventually i could not do the necessary coding to read data from excel file to create the desired MATLAB plot as shown below.
Kindly could anyone let me know, if there is way you could suggest to directly create a 2D plot using the attached .txt file or at least convert them to excel format that can be coded in MATLAB to create the plot?

 Accepted Answer

This should get you started. Note that the warnings are expected and can be ignored.
T = readtable('Spatial Density.txt', 'EmptyLineRule', 'skip', 'VariableNamesLine', 1);
Warning: Column headers from the file were modified to make them valid MATLAB identifiers before creating variable names for the table. The original column headers are saved in the VariableDescriptions property.
Set 'VariableNamingRule' to 'preserve' to use the original column headers as table variable names.
% plot some of the data -- modify as desired
plot(T.Altitude, T.Expl_Fragm, T.Altitude, T.Coll_Fragm, T.Altitude, T.Launch_Mis)
grid on
legend(T.Properties.VariableNames, 'Interpreter', 'none')
Warning: Ignoring extra legend entries.

7 Comments

Hello Les,
I tried the above code, but unfortunately continued to recieve error messages and did not create the above plot. However, I managed to create the plot i requested by coverting the info from .txt into excel sheet.
In case if you happened to have any other alternate methods, please do share.
I'm glad you were able to generate the plot that you needed.
You shouldn't have needed to create a spreadsheet. readtable can read the text file directly, as I did above. I can't help you understand an error message that I can't see, caused by code that I also can't see.
Should be
legend({'Expl_Fragm', 'Coll_Fragm', 'Launch_Mis'}, 'Interpreter', 'none')
Hello Les,
I received the below error messages:
Error using readtable
Unable to find or open 'Spatial Density.txt'. Check the path and filename or file permissions.
Error in Test (line 1)
T = readtable('Spatial Density.txt', 'EmptyLineRule', 'skip', 'VariableNamesLine', 1);
The error message is pretty clear. Matlab can't find the file.
Is the text file in the same folder with your script that you are using to make the plot?
Dear Les,
Sorry for the mistake!
Since i earlier changed the name of text document, the above code did not unfortunately recognize the txt file mentioned above in the code and hence caused an error.
The above code which you had given me is correct and generates the desired results.
Many Thanks!
You are quite welcome.

Sign in to comment.

More Answers (1)

Would something like this work? You'll have to modify the plotting part to add the other columns. I'm sure there's some way to name the table variables from the text file, but I didn't quite figure it out yet.
T = readtable('Spatial Density.txt','NumHeaderLines',1);
figure
hold on
plot(T.Var1,T.Var2)
plot(T.Var1,T.Var3)
hold off
xlabel('altitude')
legend('Expl-Fragm','Coll-Fragm')

4 Comments

Hello Zak,
Thanks for sharing the code.
I tried the above code, but unfortunately continued to recieve error messages and did not create the above plot. However, I managed to create the plot i requested by coverting the info from .txt into excel sheet.
In case if you happened to have any other alternate methods, please do share.
What kind of error messages did you get?
Hello Zak,
I received the below error messages:
Error using readtable
Unable to find or open 'Spatial Density.txt'. Check the path and filename or file permissions.
Error in Test (line 1)
T = readtable('Spatial Density.txt','NumHeaderLines',1);
Please show us the output from these MATLAB commands:
pwd
ls Spat*
ls *.txt

Sign in to comment.

Asked:

on 31 Aug 2023

Commented:

on 3 Sep 2023

Community Treasure Hunt

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

Start Hunting!