dポイントプレゼントキャンペーン実施中!

R初心者です。Rでヒストグラムを作る際、一つのヒストグラムの中でカテゴリ別に色分けをしたいのですができません。
分かりにくいとおもうので具体的に言うと、dataframe(a)にxという列とyという列があるとします。
列yには1~3までの数字がランダムに振られていて、これがカテゴリになります。
列xでヒストグラムを作成した際(hist(a$x))、列yのカテゴリを考慮して列yの1を赤、2を青、3を黄色、というように色分けしたいのです。つまり、ヒストグラムの一つの棒の色分けではなく、一つの棒の中にカテゴリ別に色分けする方法がないか探しているのですが見つかりません。
もしやり方を知っている方がいればご教授いただければ幸いです。
(もはや積み立てのようにしてヒストグラムを作る必要があるのでしょうか…そのやり方もわかりませんが…)
どうぞよろしくお願いいたします。

A 回答 (1件)

要するにヒストグラムを積み上げ棒グラフにしたいということですよね。


まず hist(a$x) とやってしまうと、カテゴリの情報が入らないので無理です。
おそらくそのものズバリの機能はないので、カテゴリごとにヒストグラムを計算して、結果を適当に整形して、積み上げ棒グラフを描く手順になるんじゃないかと思います。
カテゴリごとのヒストグラムは
h <- tapply(a$x, a$y, hist)
でできるかな。上手くいけばhがリストで、各要素にカテゴリごとのhist結果が入ってる。
あー、でもヒストグラムを積み上げるなら各階級の範囲が全てのヒストグラムで共通になるようにしないといけないから、breaks引数で分割点を明示的に指定する必要が……
事前にカテゴリごとのヒストグラムを描いてみて階級幅をどの程度に取れば良いか確認しておいてから作らないと無理ですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!