Pythonで複数の散布図を重ねる方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonで複数の散布図を重ねる方法について現役エンジニアが解説しています。散布図とは縦軸と横軸に2つの項目の数値を対応させ、データ点をプロットした図のことです。散布図を描画するには、matplotlib.pyplotのscatter()メソッドを使います。重ねるには横軸の変数を統一します。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonで複数の散布図を重ねる方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

今回は、Pythonに関する内容だね!

どういう内容でしょうか?

Pythonで複数の散布図を重ねる方法について詳しく説明していくね!

お願いします!
目次
散布図とは
散布図とは、「縦軸と横軸に2つの項目の数値を対応させ、データ点をプロットした図」のことです。
と言ってもこの説明ではイマイチしっくりこない方が多いかと思います。百聞は一見に如かずなので、ここは実際の例をお見せします。
上のようなxとyの対応関係を表した図が散布図です。
皆さんにも普段から馴染みがあるのではないかと思います。上の図は適当に作ったものなので、特に何かの関係を表しているわけではないのですが、これで散布図のイメージを掴んでいただけたのではないでしょうか。
散布図を描画する方法
それでは次に散布図を描画する方法についてご説明します。
散布図を描画するには、matplotlib.pyplotのscatter()を用います。scatter()の引数には横軸のデータと縦軸のデータをそれぞれ与えます。また、必須ではないのですがマーカーのサイズや色、線の太さなどの指定も引数で可能です。
複数の散布図を重ねる方法
次は複数の散布図を重ねる方法についてです。複数の散布図を重ねるには、横軸の変数を統一してscatter()を使う必要があります。また、このときにcolorという引数に色を指定しておくと散布図が見やすくなります。例えば以下のようなイメージです。
plt.scatter(x, y1, label='y1', color='tomato') plt.scatter(x, y2, label='y2', color='orange')
ちなみにですが、色の指定はredやblueなどの基本的な色だけでなく、aquaやoliveなどの指定もできます。オシャレな色の図が簡単にできるのでオススメです。
実は私も!?独学で損する人の特徴
「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ
独学には向き不向きがあり、実はスクールが向いている人も大勢います。
そんな方のために参考として、
テックアカデミー卒業生がスクールを選んだ理由
をご紹介します。
- ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
- ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
- ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、
スクールが向いているかもしれません。
お試しのつもりで、まずは一度
無料相談
に参加してみませんか?
現役エンジニア・デザイナーに何でも気軽に相談できる30分
を
すべて無料で
できます。
無理な勧誘は一切ない
ので、お気軽にご参加ください。
実際に実装してみよう
まずは先ほどの散布図を書いてみます。コードの概要は以下の通りです。
- 必要なライブラリのインポート
- データの準備
- 散布図を描く(同時にタイトルやラベルなども記載)
- 散布図を表示
import numpy as np import matplotlib.pyplot as plt x = np.arange(30) y = [] for i in range(30): y.append(np.random.randn()) plt.scatter(x,y) plt.title("SCATTER PLOT") plt.xlabel("x") plt.ylabel("y") plt.show()
次に、散布図を重ねて描画します。ここでは横軸に国語の点数を、縦軸に数学と理科の点数を取って相関を確認してみましょう。先ほどとの主な違いはscatter()を2回用いる点です。
import numpy as np import matplotlib.pyplot as plt japanese = [90,55,72,68,87,73,42,100,55,32] math = [82,67,80,62,90,81,30,98,40,29] science = [95,74,85,70,100,92,50,100,62,53] plt.scatter(japanese, math, label='math', color='aqua') plt.scatter(japanese, science, label='science', color='olive') plt.xlabel('japanese') plt.ylabel("math & science") plt.legend() plt.show()
上のような散布図ができたかと思います。グラフが右肩上がりなので、国語と他の科目には相関がありそうですね。
まとめ
この記事ではPythonで複数の散布図を重ねる方法について解説しました。matplotlibを使いこなせると高度な数学的なグラフも一瞬で描けるようになります。是非使いこなせるようになりましょう。
監修してくれたメンター
柴山真沙希(しばやままさき)
大手IT企業などでエンジニアとして2年ほど勤務した後、個人事業主としてプログラミングスクール「エンペサール」を経営。子供から大人まで幅広い層を対象にプログラミングを教えている。 得意言語はPython, HTML, CSSで、機械学習やデータ分析、スクレイピングなどが得意。サッカー観戦や読書が趣味である。 |

内容分かりやすくて良かったです!

ゆかりちゃんも分からないことがあったら質問してね!

分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。

プログラミングを独学していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
厳しい試験を通過した講師
があなたの相談に真摯に向き合います。
「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」
こんな気持ちでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)