Bar plot error when plotting

1 次查看(过去 30 天)
Dear MATLAB experts,
I'm trying to create a bar plot with the column 'position_holder' in the x axis and the column 'percentage' in the y axis.
I want to only plot the first 20 rows of this two columns, but even if I explicitly create a new table with these 20 rows, MATLAB keeps on plotting all rows included in the position_holderFrequency table, when it should just be including the 20 rows from position_holderFrequencyHead.
Therefore, the plot created is all over the place and not useful at all (see attachment). I don't know if this is a problem from MATLAB itself or there is something wrong in the code written, but I would really be thankful for your guidance.
Thank you in advance.
% Plot the histogram for column 'position_holder'
figure('Name', 'Frequency of Appearance of position_holder', 'NumberTitle', 'off');
position_holderFrequency.position_holder = categorical(position_holderFrequency.position_holder);
% Need to create a new table because bar is not able to process only the
% first 20 rows
position_holderFrequencyHead = position_holderFrequency(1:20, [1 3]);
bar(position_holderFrequencyHead.position_holder, position_holderFrequencyHead.percentage);
xlabel('position_holder')
ylabel('%')
title('Distribution of position_holder Frequency')
  2 个评论
Ive J
Ive J 2021-9-26
Can you upload your dataset? Your snipped needs position_holderFrequency to run.

请先登录,再进行评论。

采纳的回答

Ive J
Ive J 2021-9-26
编辑:Ive J 2021-9-26
The main problem is that your tick labels are too long to fit under the axes. You can try something like this:
figure('Name', 'Frequency of Appearance of position_holder', 'NumberTitle', 'off');
% data = position_holderFrequency(1:20, [1 3]);
data = table(["Marshall Wace LLP";"BlackRock Investment Management (UK) Limited";"AQR Capital Management, LLC";"Citadel Europe LLP";"BlackRock Institutional Trust Company, National Association";"WorldQuant, LLC";"MARSHALL WACE LLP";"Millennium International Management LP";"JPMorgan Asset Management (UK) Ltd";"GLG Partners LP";"GSA Capital Partners LLP";"Citadel Advisors LLC";"WorldQuant LLC";"AKO Capital LLP for AKO Master Fund Limited";"Adage Capital Management L.P.";"Capital Fund Management SA";"Oxford Asset Management";"AHL Partners LLP";"ODEY ASSET MANAGEMENT LLP";"TT International"], [12.4109;4.87476;4.17665;2.50779;2.35796;2.16306;2.14916;2.05453;2.02674;1.88817;1.71693;1.35153;1.19794;1.05712;1.0267;0.989898;0.979383;0.959856;0.953096;0.823538], 'VariableNames', {'position_holder', 'percentage'});
h = bar(data.percentage);
h.Parent.XTick = 1:size(data, 1);
h.Parent.XTickLabel = data.position_holder;
h.Parent.XTickLabelRotation = 35; % rotate labels
h.Parent.XAxis.FontSize = 7; % reduce font size fo better visualization
You may want to also use some acronyms in this case.
  4 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by