Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

matplotlibの散布図で値ごとに色付けするときのメモ

More than 3 years have passed since last update.

この記事は何?

matplotlibで散布図を描くときはscatterを使いますが,各点毎に値が割り当てられているときにその値によって色付けしたい時があります.
いつも描き方を忘れるのでそのためのメモです.

ソースコード

import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt

if __name__ == '__main__':
    N = 100
    X = np.random.rand(N, 2)
    y = np.random.rand(N) * 2 - 1
    sc = plt.scatter(X[:, 0], X[:, 1], vmin=-1, vmax=1, c=y, cmap=cm.seismic)
    plt.colorbar(sc)
    plt.show()

Xは2次元上の点を表し,yは各点に割り当てられた値を表します.
今回は各点に-1から1の値を割り当てました.
plt.scatterに渡す引数でvminとvmaxを指定すると,colormapの最小値と最大値を指定することができます.
また,plt.scatterの返り値をplt.colorbarに渡すことでcolormapのcolorbarも描くことができます.

実行結果

demo.png

sz_dr
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away