matplotlib
十分な広さのfigsizeにグラフを書くと、軸はそれなりに表示される import matplotlib.pyplot as plt fig, axes = plt.subplots(ncols=2, nrows=2) for ax in axes.flat: ax.plot([1,2], [0.00001,1]) ax.set_yscale("log") plt.tight_layout() plt.show() グ…
直線で描く場合。 import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([0,1],[0,1]) plt.show() dashes 変数を使うと、点線の色あり、色なしの部分の幅を指定できる。以下はその例。 import matplotlib.pyplot as plt fig, ax = plt.subplot…
下記のコードではJupyter Labを使っています。 matplotlibの他に、ipymplが必要なので、pip install ipymplでインストールしてください。 コードを完全に理解していないため、解説は他の記事を参照してください。 マウスでクリックした時の、回数、座標、そ…
root.cern.ch Better palettes like kBird are recommended. と書かれているので使ってみよう。 import matplotlib red_bird = [ 0.2082, 0.0592, 0.0780, 0.0232, 0.1802, 0.5301, 0.8186, 0.9956, 0.9764] green_bird = [ 0.1664, 0.3599, 0.5041, 0.6419,…
グリッド間隔、線の種類、線の幅、線の色、用紙サイズは自由に設定できるようにした。 要点は次の3つ plt.subplots_adjust()で枠線の外側をなくしてfigureを紙面全体にする plt.gca().axis("off") で枠線、目盛り、目盛りラベルを消す plt.plot(transform=pl…
matplotlib公式のlegendのチュートリアルの一部をこの記事で紹介する。 matplotlib.org matplotlibにおける凡例はplt.legend() とする。 label で指定したグラフの凡例が、グラフの隙間に自動的に描画される。 import numpy as np import scipy import matpl…
普通に描画する fig, ax = plt.subplots() ax.plot([0,1],[0,1]) plt.show() 軸を全て消す。 fig, ax = plt.subplots() ax.plot([0,1],[0,1]) ax.axis("off") plt.show() subplotsを使わない場合はaxのかわりにplt.gca()とする。 plt.plot([0,1],[0,1]) plt.…
ヒストグラムのビン(bin)の値を直接操作した後で、ヒストグラムっぽいグラフを作りたいことがあるだろう。 以下では、plt.hist を使った場合と、np.histgramで計算させた、binの位置 X とCounts Y を使って plt.hist 以外で描画する方法を紹介する。 データ…
matplotlib.patheffectsを使いこなすと良い。 黒抜き文字の例 import matplotlib.patheffects as patheffects import matplotlib.pyplot as plt plt.plot([0,1],[0,1],lw=50) plt.text(0.5,0.5,"testテスト",ha="center",va="center",color="black",fontsize…
ROOTのTH2DやTH2Fなどのクラスでは、2次元ヒストグラムを、legoっぽく図示できる。 ご存知の通り、Python + matplotlib の hist2dには、このような描画をするコマンドはない(はずである)。 というわけで、作ってみた。3次元バーを描画する関数であるbar3dを…
Pythonで、二次元平面上の点列から、閉じた多角形の中にある点列を選ぶ方法。matplotlib.pathモジュールの関数 contains_points を使うと良いらしい。 コードの大半はChatGPTに書かせた。ありがとう! import numpy as np import matplotlib.path as mpath im…
物理では、例えば、β と Energy [MeV/u] のように、同じ量だが異なる表記をすることがある。 これを1つのグラフに同時に表示したいとき、以下のようにする。 import numpy as np import matplotlib.pyplot as plt Zs = np.arange(1, 100, 1) data1 = 0.5+Zs*…
カラーバーを線形スケールで描画する場合、countsが0のbinを白くする方法は3通りあります。 np.histogram2d でhistデータを作成し plt.pcolormesh で描画する方法 下限値を白にしたカラーマップを使って plt.hist2d で描画する方法 端だけに白にしたカラーマ…
長方形を描画 matplotlib.patches.Rectangle サンプルコード import matplotlib.pyplot as plt x,y,width,height = 5,10,20,10 rect = plt.Rectangle((x,y), width, height, edgecolor="black", facecolor="tab:orange") plt.gca().add_patch(rect) plt.xlim…
矢印を描画 matplotlib.pyplot.quiver matplotlib.pyplot.arrowではなくmatplotlib.pyplot.quiverを使う。 矢印の始点(px, py)、矢印のベクトル(vx, vy)をquiverに与えればよいが、科学目的の場合デフォルトの引数だとやや問題が起きがちなので一つ一つ説明…
rcParamsの使い方 デフォルトのfigureのサイズを指定する アスペクト比を設定 上下左右の隙間を設定する figsizeに合わせて上下左右とsubplots間の隙間を自動調整 さらに細かくレイアウトを調整 subplotsに共通の軸ラベルを付ける 軸設定 (transform) rcPara…
stackoverflow のコードがシンプルで良いだろう。 stackoverflow.com import matplotlib.pyplot as plt import numpy as np fig, axes = plt.subplots(nrows=2, ncols=1, sharex=True) for ax in axes: mesh = ax.pcolormesh(np.random.randn(30, 30), vmin=…
import matplotlib.pyplot as plt from matplotlib.backends.backend_pdf import PdfPages pdf_path = "test.pdf" pdf = PdfPages(pdf_path) #グラフ生成 fig, ax = plt.subplots() pdf.savefig() #グラフ生成 fig, ax = plt.subplots() pdf.savefig() pdf.c…
pythonのmatplotlibで2次元ヒストグラム(plt.hist2d)のビンの値 (bin contents)を直接操作する方法はない。なので、 colormesh を使って描画しよう。 import numpy as np import matplotlib.pyplot as plt from itertools import product Z, X, Y = np.histo…