質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

0回答

501閲覧

R: ggplot2で各店ごとの売り上げ数を示す棒グラフを作りたい

Yvolve

総合スコア2

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2021/08/14 05:43

編集2021/08/17 03:52

ggplot2でグラフ作成をしていますが、1週間ほどうまくいかず力を貸していただけると嬉しいです。

各店の夏服と冬服の売り上げの割合と実数をみています。
68店舗のデータがあり、地域Aと地域Bで34店舗ずつに分けています。
地域Aと地域Bのグラフを重ね合わせたいと考えています。

各店舗の夏服の売り上げ割合を横軸(X)にし、縦軸(Y)には各店舗毎(%ごと)の売り上げ数を設定します。店舗を%で並べ替えるイメージです。
手元にあるデータは各店舗の「夏服売り上げ割合(%)」と「売上数(実数)」です。
いまは

data.frameとして以下のようになっています。これが地域Aと地域Bで2セットあります。
夏服売り上げ実数    夏服割合
1 33          3.0
2 33 3.0
3 36 5.6
4 147 7.5
5 28 10.7
と34店舗続きます。    

どのような手順とプログラムで進めたらよいでしょうか。
途中から混乱してしまいましたので、どなたかにアドバイス頂けますと幸いです。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2021/08/14 07:21

「うまくいかなかった」だけでは状況がわかりません。どこまでできて、何がうまく行かなかったのか、具体的に説明してください。できたところまででいいのでコードを示してください。 また、どういう環境で作業しているのかも教えてください。これにはsessionInfo()の実行結果を質問に追記していただくのが最も確実です。
Yvolve

2021/08/15 19:54

The downloaded binary packages are in C:\Users\yetii\AppData\Local\Temp\Rtmpu2PQkd\downloaded_packages > library(sessioninfo) > os_name() [1] "Windows 10 x64" > platform_info() setting value version R version 4.0.5 (2021-03-31) os Windows 10 x64 system x86_64, mingw32 ui RStudio language (EN) collate Japanese_Japan.932 ctype Japanese_Japan.932 tz America/New_York date 2021-08-14 > package_info() package * version date lib source cli 2.5.0 2021-04-26 [1] CRAN (R 4.0.5) sessioninfo * 1.1.1 2018-11-05 [1] CRAN (R 4.0.5) tinytex 0.31 2021-03-30 [1] CRAN (R 4.0.5) withr 2.4.2 2021-04-18 [1] CRAN (R 4.0.5) xfun 0.22 2021-03-11 [1] CRAN (R 4.0.5) [1] C:/Program Files/R/R-4.0.5/library > session_info() - Session info ----------------------------------------------------------------------------------------------------------------------------------- setting value version R version 4.0.5 (2021-03-31) os Windows 10 x64 system x86_64, mingw32 ui RStudio language (EN) collate Japanese_Japan.932 ctype Japanese_Japan.932 tz America/New_York date 2021-08-14 - Packages --------------------------------------------------------------------------------------------------------------------------------------- package * version date lib source cli 2.5.0 2021-04-26 [1] CRAN (R 4.0.5) sessioninfo * 1.1.1 2018-11-05 [1] CRAN (R 4.0.5) tinytex 0.31 2021-03-30 [1] CRAN (R 4.0.5) withr 2.4.2 2021-04-18 [1] CRAN (R 4.0.5) xfun 0.22 2021-03-11 [1] CRAN (R 4.0.5) [1] C:/Program Files/R/R-4.0.5/library
Yvolve

2021/08/15 19:55

まずは、環境について添付致しました。この後、現在の進捗を添付します。
Yvolve

2021/08/15 20:01

number_summer < -c(33,33,36,147,28,370,35,66,146,1291,36,86,393,92,37,3186,458,2047,244,82,754,296,1172,2817,8940,1296,2601,305,3728,36,4806,716,2036,512) rate_summer <-c(3.0,3.0,5.6,7.5,10.7,11.4,11.4,12.1,12.3,12.6,13.9,17.4,18.3,18.5,18.9,19.3,20.1,22.1,22.5,24.4,24.9,25.7,27.1,27.2,28.2,29.2,30.1,30.5,31.6,33.3,33.9,34.5,35.0,37.9) Trend_summer <- data.frame (number_summer, rate_summer) hist( Trend_summer, xlim=c(0,60), ylim=c(0,12000), col="#ff000020", xlab="percentage" ) と書いたものの、ヒストグラムとは違うかなと思い、geom_barを使いましたが、それもうまく書けません。 X軸は各店舗の夏服割合、Y軸は各店舗の夏服売り上げ実数、として棒グラフを書き、さらにもう一つの地域Bの同じグラフを重ね合わせたいですが、手が止まってしまいました。 どうかご教示お願い致します。
KojiDoi

2021/08/16 09:33

そのような形式のデータで棒グラフを描こうという方向がそもそも間違っていますね。histにせよgeom_barにせよ、そのようなデータを想定していないのでエラーになるでしょう。普通はgeom_pointで散布図を描くと思います。
Yvolve

2021/08/16 20:21

ありがとうございます!違和感がありつつも、実際にこれまでそうした棒グラフを書いて、(上司が)地域間の分布の差を見ていました。散布図は私ももちろんかけるのですが、、、。
KojiDoi

2021/08/16 21:40

その棒グラフ、たとえばエクセルでは描けますか? 正直私にはどんな棒グラフを書けば「地域間の分布の差」が読み取れるのかイメージできません。「うまく書けません」だけではどんなグラフが「正しい棒グラフ」なのかわからないので、できればスナップショットを付けてもらえると助かります。
Yvolve

2021/08/17 03:55

グラフを載せてみました。いかがでしょうか。 左は昨年の状況。34店舗ずつ比較しています。赤がA地域(34店舗)、青がB地域(34店舗)です。 右のグラフは今年です。ある介入を行ったB地域は全体に売り上げが増えています。 このようなグラフを書きたいのです。
KojiDoi

2021/08/17 07:19

c(3.0,3.0,5.6,7.5,10.7,11.4,11.4,12.1,12.3,12.6,13.9,17.4,18.3,18.5,18.9,19.3,20.1,22.1,22.5,24.4,24.9,25.7,27.1,27.2,28.2,29.2,30.1,30.5,31.6,33.3,33.9,34.5,35.0,37.9) これとグラフ上のx軸の数字が全く違うもののように見えますが、どのようなルールで変換しているのですか?
Yvolve

2021/08/18 03:08

グラフは見本でして、他のデータになります。そのため提示しているものとは違います。しかし数値の違いはありますが、データ構造は基本的に同じです。必要なものがあれば、改めて提示致します。
KojiDoi

2021/08/18 05:04

>データ構造は基本的に同じです。 そう見えないので質問しています。 私の目にはグラフのx軸は2刻みの区間であるように見えます。しかし提示されたコードの数値はそうなっていません。たとえば3.0が二つありますが、グラフに落とし込むときはどうするんですか?
Yvolve

2021/08/19 01:29

X軸, Y軸で使っているベクトルは、もともと60万くらいの顧客データから、Table関数でtable(DT$summer,DT$shop)とtable(DT$others,DT$shop)という形で取り出し、summer/(summer+others)*100で割合を計算しています。そこから、number_summerとrate_summerのベクトルを作成した流れです。 以前の見本グラフは%が重ならなかったようです。すみません。そうすると話が変わってきますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問