Dear Community
I would like to create a plot for my bachelor thesis that looks like the one in the picture.
However, I haven't seen anything similar and would like some advice on how to do it. Of course it would be better to just get a solution.
Thanks a lot if you take care of the question.

 Respuesta aceptada

Star Strider
Star Strider el 21 de Jun. de 2021

1 voto

One approach —
barvals = sort(rand(2,5),'descend') % Matrix Defining Limits Of Bars
barvals = 2×5
0.5639 0.6979 0.6853 0.4293 0.6496 0.1724 0.3140 0.0080 0.1476 0.4906
figure
plot([1;1]*(1:size(barvals,2)), barvals, 'LineWidth',25, 'Color',[1 1 1]*0.8)
hold on
plot([1;1]*(1:size(barvals,2)), [-0.01;0.01]*(ones(size(barvals(1,:))))+barvals(1,:), 'r', 'LineWidth',25)
plot([1;1]*(1:size(barvals,2)), [-0.01;0.01]*(ones(size(barvals(2,:))))+barvals(2,:), 'b', 'LineWidth',25)
hold off
xlim([0 size(barvals,2)+1])
text(1:size(barvals,2), mean(barvals), compose('$%d$',randi(200,1,size(barvals,2))), 'Horiz','center', 'Vert','middle', 'Rotation',90, 'Interpreter','latex', 'FontSize',14)
Adding the tick labels is straightforward. I can help with that if you like.
.

2 comentarios

Fabian Walther
Fabian Walther el 22 de Jun. de 2021
Hello Star Rider
Thanks for your help, it is exactly what I was looking for.
I have uploaded the final result as an image and will add my code below in case anyone has the same question.
Data = readmatrix('Data.xlsx');
barvals = sort(Data(1:2,:),'descend'); % Matrix Defining Limits Of Bars
%figure
plot([1;1]*(1:size(barvals,2)), barvals, 'LineWidth',25, 'Color',[1 1 1]*0.8)
hold on
plot([1;1]*(1:size(barvals,2)), [-0.01;1]*(ones(size(barvals(1,:))))+barvals(1,:), 'r', 'LineWidth',25)
plot([1;1]*(1:size(barvals,2)), [-0.01;1]*(ones(size(barvals(2,:))))+barvals(2,:), 'b', 'LineWidth',25)
hold off
xlim([0 size(barvals,2)+1])
text(1:size(barvals,2), mean(barvals), compose('$%d$',Data(3,:)), 'Horiz','center', 'Vert','middle', 'Rotation',90, 'Interpreter','latex', 'FontSize',14)
xt = get(gca, 'XTick');
%Name of the x-axis
set(gca, 'XTick', xt, 'XTickLabel', {'','Toluen' 'Lit Toluen' 'Ethanol' 'Lit Ethanol',...
'Acetonitril','Lit Acetonitril','DMSO','Lit DMSO'})
%define y-label
ylabel('$\lambda$ / nm','interpreter','latex');
set(gcf,'color','w');
Star Strider
Star Strider el 22 de Jun. de 2021
As always, my pleasure!
It would be straightforward to add the legend as well. It would likely be necessary to use ylim to increase the upper limit of the axes in order to accommodate it.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 21 de Jun. de 2021

Comentada:

el 22 de Jun. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by