Plotting histogram in years like BCE, CE
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Madlab
el 25 de Sept. de 2018
Comentada: Danny
el 10 de Feb. de 2022
I want to plot a histogram of frequency of eruptions based on the years.
However, the data provided is not so simple. It has year in the form of BCE and CE, along with "unknowns". I want to get rid of the unknowns and count the number of eruptions. However, I cannot read the data as an integer/etc as there are strings in it. "500 CE" and "205 BCE" for example. Is there a way to plot the histogram accounting for such data? I have attached a photo of the data sample in the link.
So far, what I have is
% Locating the index for unknowns
ridunknowns = find(strcmp('Unknown',eruptyear));
% Changing the values of Unknowns to NaN in the vector
eruptyear([ridunknowns]) = {NaN};
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/196590/image.png)
0 comentarios
Respuesta aceptada
Steven Lord
el 25 de Sept. de 2018
Define the format for your date data.
fmt = 'yyyy G';
Convert your data into a datetime array. "Unknown" dates become NaT.
S = {'3300 BCE'; '4040 BCE'; 'Unknown'; '1944 CE'};
DT = datetime(S, 'InputFormat', fmt, 'Format', fmt)
Generate 1000 year wide bins.
startBin = datetime('5000 BCE', 'InputFormat', fmt, 'Format', fmt);
endBin = datetime('2001 CE', 'InputFormat', fmt, 'Format', fmt);
E = startBin:calyears(1000):endBin
Create a histogram using the selected edges.
histogram(DT, E)
If instead you want century-wide bins you can specify that as the BinMethod.
histogram(DT, 'BinMethod', 'century')
1 comentario
Más respuestas (0)
Ver también
Categorías
Más información sobre Histograms en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!