現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
Generate bar like the attach
2 ビュー (過去 30 日間)
古いコメントを表示
Dear friends,
How could I plot bar, for the following data. This graph generated by Excel.
Thank you in advance.
18 件のコメント
DGM
2021 年 4 月 15 日
Depends what you mean by "different nice color". You can specify any color tuple you want, and there are multiple built-in and countless custom colormaps available.
Adam Danz
2021 年 4 月 15 日
This has been addressed in the forum dozens and dozens of times. Search for methods of changing grouped bar colors and if you have any problems implementing the solution show us what you've got.
DGM
2021 年 4 月 15 日
編集済み: DGM
2021 年 4 月 15 日
If you're asking how to make it look like the excel plot, this is an approximate example.
a = rand(5, 3); % 5 groups of 3 bars
h = bar(a)
cmap=[68 114 196;
165 165 165;
91 155 213]/255;
h(1).FaceColor=cmap(1,:);
h(2).FaceColor=cmap(2,:);
h(3).FaceColor=cmap(3,:);
h(1).EdgeColor=cmap(1,:);
h(2).EdgeColor=cmap(2,:);
h(3).EdgeColor=cmap(3,:);
set(gca,'ygrid','on','xgrid','off')
legend(h,'thing1','thing2','thing3')
Ameri
2021 年 4 月 15 日
Thank you alot of, there are several issue please
1- x (number of nodes must be 40 60 80 90 100) not from 1 to 5
2- y (pdr ratio) classified as (10 20 30 40 50 60 70 80 90 100)
3- each bar must refers to his data from excel
I am very grateful for your help
DGM
2021 年 4 月 15 日
For clarification:
a = rand(5, 3);
is a placeholder. You're supposed to include your data.
Consider the example:
x = [5 10 15 20];
y1 = [11 12 13 14]; % this is one dataset
y2 = [14 15 16 17]; % this is another dataset
y3 = [17 18 19 20]; % and so on
y = cat(1,y1,y2,y3)'; % concatenate them
h = bar(x,y); % plot them
cmap=[68 114 196;
165 165 165;
91 155 213]/255;
h(1).FaceColor=cmap(1,:);
h(2).FaceColor=cmap(2,:);
h(3).FaceColor=cmap(3,:);
h(1).EdgeColor=cmap(1,:);
h(2).EdgeColor=cmap(2,:);
h(3).EdgeColor=cmap(3,:);
set(gca,'ygrid','on','xgrid','off')
legend(h,'thing1','thing2','thing3','location','northwest')
You can either include those vectors as literals or by reading them in from an excel file.
Ameri
2021 年 4 月 15 日
Many thanks, this is exctly what I want, I have just one qustions more about giving a good layout and what about the number of array you wrote them based on what please . Many thanks in advance.
Ameri
2021 年 4 月 15 日
How could control on the space between the group of cloumns please like space between ( 40 and 60 )please
Ameri
2021 年 4 月 15 日
1- Here a gap or space between some bars is large, where the space between (80 - 90 ) is small, while the space between (40-60) is large. how could make this space are equlals between groups please.
2-and what about this please ? how you selected this number and why
cmap=[68 114 196;
165 165 165;
91 155 213]/255;
DGM
2021 年 4 月 15 日
編集済み: DGM
2021 年 4 月 15 日
I'm sorry. I didn't see your prior comment. This site tends to be laggy about updating sometimes.
For question 1, that's happening because x has uneven spacing. Try using a categorical array for x:
x = categorical([40 60 80 90 100]);
For question 2, that's a colormap I derived from the image of the excel bar chart you posted. You can use whatever colormap you want. They're just RGB values.
Walter Roberson
2021 年 4 月 16 日
That works.
These days we recommend switching to readtable() instead of xlsread()
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Bar Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)