グラフ・分析

【R】ggplot2をつかって散布図を様々な方法でつくる

散布図

ggplot2を使って、散布図を書きたいなー

という悩みを解決します。

●記事の内容

  • ただ散布図をつくる
  • 3つ目の変数を使う散布図
  • 3つ目の連続値変数を使う散布図

今回は、ggplot2を使って散布図をつくります。テーマ別に作り方がかいてあるので、必要なところだけ、ご覧ください。

もしエラーがおきたらteratailで質問してみてください。エンジニアさんやプログラマーさんが教えてくれますよ。

散布図をつくる目的・実行環境

目的

散布図を使って、データを可視化する。

実行環境

  • Windows10
  • Rstudio

MacでもLinuxでも可です。

散布図をつくる

使うデータ

使うデータは、gcookbookパッケージのデータ【heightweight】を使います。各自のデータがある方は、そちらを使ってください。

【heightweight】のデータの概要はこんな感じです。

散布図

必要なパッケージ

  • ggplot2
  • gcookbook(データがある方は必要ない)

この2つを使います。パッケージの使い方がわからない方は、【R】RStudioでパッケージをインストールする方法と読み込みまでの流れをご覧ください。

先にパッケージを読み込みましょう。

パッケージの読み込み

library(ggplot2)
library(gcookbook)

シンプルな散布図

シンプルな散布図をつくる

シンプルな散布図

ggplot(heightweight,aes(x=ageYear,y=heightIn))+geom_point()

ggplot(データ名,aes(x=x軸にしたいデータ,y=y軸にしたいデータ)) + geom_point

散布図

ポイント(点)の大きさを変える

ポイントの大きさを変える

ggplot(heightweight,aes(x=ageYear,y=heightIn))+geom_point(size=5)

ggplot(heightweight,aes(x=ageYear,y=heightIn))+geom_point(size=数字)

size=数字ポイントの大きさを変える
散布図

ポイント(点)の形を変える

ポイントを変える

ggplot(heightweight,aes(x=ageYear,y=heightIn))+geom_point(shape=0)

ggplot(heightweight,aes(x=ageYear,y=heightIn))+geom_point(shape=数字)ここの数値を変えると形が変わる0~25

shape=数字ポイントの形を変える
散布図

3つの変数を使う

色分けして散布図にする

性別ごとに分けたりすることですね。

色分け

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex))+geom_point()

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex))+geom_point()

↑変数を入れる

colour=データ名分けたい変数名をいれる
散布図

形分けして散布図にする

色ではなく、形で分けます。

形で分ける

ggplot(heightweight,aes(x=ageYear,y=heightIn, shape=sex))+geom_point()

ggplot(heightweight,aes(x=ageYear,y=heightIn, shape=sex))+geom_point()

↑グループ化したいデータを入れる

shape=変数わけたい変数をいれ、形によって分類される
散布図

色分けして形かえて散布図

色形でわける

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex,shape=sex))+geom_point()

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex,shape=sex))+geom_point()

colour=sex,shape=sex形と色で分かれる
散布図

ポイントの形を変える

ポイントの形を変える

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex,shape=sex))+geom_point() +
scale_shape_manual(values = c(2,4))

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex,shape=sex))+geom_point() +
scale_shape_manual(values = c(2,4))

scale_shape_manual(values = c(数字,数字))グループ化した変数の形を変える
散布図

ポイントの色を変える

通常のままだとわかりにくいので、色を変えていきます。

ポイントの色を変える

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex,shape=sex))+geom_point() +
scale_color_brewer(palette = “Dark2”)

ggplot(heightweight,aes(x=ageYear,y=heightIn, colour=sex,shape=sex))+geom_point() +
scale_color_brewer(palette = “Dark2”)

↑ポイントの色を変えています。

scale_color_brewer(palette = “色”)ポイントの色を変える

この色というのは、こんだけ種類があります。好きな色に分けてみてください。

散布図 wordcloud

スポンサーリンク

3つ目の連続値変数を使った散布図

身長が高くなるごとに、体重が増加することを色やポイントの大きさを使って、表していきたい場合に使います。

数値と色が比例

数値と色が比例

ggplot(heightweight,aes(x=ageYear,y=heightIn,fill=weightLb)) +
geom_point(shape=21, size=2.0) +
scale_fill_gradient(low = “red”,high = “white”)

ggplot(heightweight,aes(x=ageYear,y=heightIn,fill=weightLb)) +
geom_point(shape=21, size=2.0) +
scale_fill_gradient(low = “red”,high = “white”)

↑fillで入れた変数が高くなるほど、白、低くなるほど、赤になる

scale_fill_gradient(low = “色”,high = “色”)fillの数値に対応している。fillでいれた変数の値が小さいほど、lowの色に近づき、高くなるほど、highの色に近づく
散布図

数値と大きさが比例

数値と大きさが比例数値と大きさが比例

ggplot(heightweight,aes(x=ageYear,y=heightIn,size=weightLb))+
geom_point(alpha=0.4)+
scale_size_area()

ggplot(heightweight,aes(x=ageYear,y=heightIn,size=weightLb))+
geom_point(alpha=0.4)+
scale_size_area()

scale_size_area()でsizeの値が比例する(ポイントが大きくなる)

scale_size_area()sizeの値と比例して、ポイントが大きくなる
alpha=数値明度0~1まで(色の透明度を表す)
散布図

色と値と大きさで散布図

日本語で上手く表すことができなくてすいません。

コード

ggplot(heightweight,aes(x=ageYear,y=heightIn,size=weightLb,colour=sex))+
geom_point(alpha=0.4)+
scale_size_area()+
scale_color_brewer(palette = “Set2”)

ggplot(heightweight,aes(x=ageYear,y=heightIn,size=weightLb,colour=sex))+
geom_point(alpha=0.4)+
scale_size_area()+
scale_color_brewer(palette = “Set2”)

↑色を変える

scale_size_area()sizeの値と比例して、ポイントが大きくなる
scale_color_brewer(palette = “色”)ポイントの色が変わります
散布図

色はこれです。

wordcloud

まとめ

size=数字ポイントの大きさを変える
shape=数字ポイントの形を変える
colour=データ名分けたい変数名をいれる
shape=変数わけたい変数をいれ、形によって分類される
colour=sex,shape=sex形と色で分かれる
scale_shape_manual(values = c(数字,数字))ポイントの形を変える
scale_color_brewer(palette = “色”)ポイントの色を変える
scale_fill_gradient(low = “色”,high = “色”)fillの数値に対応している。fillでいれた変数の値が小さいほど、lowの色に近づき、高くなるほど、highの色に近づく
scale_size_area()sizeの値と比例して、ポイントが大きくなる
alpha=数値明度0~1まで(色の透明度を表す)

●ゼロから始めるR言語に戻る

R言語
【随時更新】ゼロから始めるR言語【2018/3/30日更新】RとRStudioのインストールからグラフ・図・分析、テキストマイニング、スクレイピングなどをやっていきます。ネットでRを勉強したい人は是非ご覧ください。...

参考文献

Rグラフィックスクックブックを参考にこの記事を書かせていただきました。とても参考になるので、Rでグラフ作成をしたい人は是非、購入してみてください。

データサイエンティストになりたいなら

  • データサイエンティストになりたいけど、漠然とRの勉強をしている

もしそうならば、戦略的に勉強しましょう。戦略的に勉強しなければデータサイエンティストになるのは夢のままになってしまう可能性があります。

データサイエンティストになるためのおすすめの勉強方法・講座を3つご紹介します。

①通勤講座でデータサイエンティストの講座を受ける

  • ビジネスにデータを活用したいが方法が分からない。
  • ビックデータをどう扱えばよいか分からない。
  • データサイエンティストになりたいが、どうすればいいのか分からない。

このような場合、データサイエンティスト基礎講座 を受けてるのはどうでしょうか。動画によって、上のような悩みを解決してくれます。

まずデータサイエンティスト の基礎を学んでみて、ビジネススキルが足りなかったらUdemy で勉強するのが良いです。

いまなら10%クーポンもありますし、無料の動画もあります。今行動しないと一生やりませんので、もう少し下を見てからで良いのでご覧ください。

▼まずデータサイエンティストの基礎を学ぶ▼

データサイエンティストの基礎を学ぶ>>

②Udemyのデータサイエンティスト講座を受ける  

「Udemy」も動画で学ぶタイプの講座です。データサイエンティストになるための講座がそこそこあります。

通勤講座とちがうのが安さです。どちらも内容の質が良いことは間違えないのですが、Udenyは安めです。

「自分この部分の知識がないな」と思ったときの補強でも使えますね。一度講座をとって気に入らなかったら、全額返金できます。

▼データサイエンティストの基礎を学んだり、知識の補強をする▼

 Udemyのデータサイエンティスト講座を受ける>>

③データサイエンティスト育成スクールにいく

本気でデータサイエンティストになりたいなら、このスクールに行くのがおすすめです。

データサイエンティストに必要な知識は膨大です。統計学、機械学習、人工知能、データベース、プログラミング、ビジネススキルなどなど。

その知識をデータサイエンティストとしての経験がある先生たちが、オフラインで教えてくれます。

動画です。ご覧ください。

どうですか、めっちゃ良いですよね。ここは他の講座と違うなと思った部分があるのですが、転職支援もしてくれます。

さらに

データサイエンティスト全コースを一括で申し込んでいただいた方のみ、
ブートキャンプ終了時にご満足いただけない場合は受講料を全額返金します。

返金保障もあります。

もしまだ心配な方は説明会もありますので、いって見てください。

  • 未経験からデータサイエンティスト目指せる(Rを触っているあなたならもっと安心)
  • 返金保障あり
  • データサイエンティストに必要な知識を学べる
  • オフライン
  • データサイエンティスト経験がある先生に質問ができる
  • 転職支援あり

もう一度言います。本気でデータサイエンティストを目指すならおすすめです。

▼データサイエンティストになる▼

未経験からデータサイエンティストになる>> 

どれにしますか

①と②の場合はまず基礎を学んで、足りないところを補充して転職という感じです。③は転職支援もあるので安心です。

思いたったときに行動しなければ意味がありません。将来的にデータサイエンティストになりたいなら今すぐ行動しましょう。

データサイエンティストの基礎を学ぶ
通勤講座のデータサイエンティストの講座を受ける  

データサイエンティストの基礎を学んだり、知識の補強をする
Udemyのデータサイエンティスト講座を受ける  

本気でデータサイエンティストを目指す
データサイエンティスト育成スクールにいく

 

 

ABOUT ME
さぎのみや
さぎのみや
ゲーム開発を手助けるメディア【ユニシャー】を運営しているさぎのみやの個人ブログです。自分の考えや役にたったことを書いております。自分の芯がある人が好きです。→Amazonほしいものリスト
ゲーム開発を手助けるメディア「Unishar-ユニシャー」
  • Unityを勉強したい
  • とりあえずUnityを使ってゲームを作りたい

このような悩みを解決してくれる、アクセス急上昇中のUnityメディア「Unishar-ユニシャー」

Unityでのゲーム開発に役立つことばかりです。

Unity専門メディア「Unishar-ユニシャー」→