Python
十分な広さの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() グ…
この記事の Awkward のバージョンは1.X.Xです Python の awkward パッケージに実装されている parquet ファイル形式を入出力するときの処理時間を、圧縮形式ごとに比較してみる。配列の型は awkward.highlevel.Array と呼ばれる形式である。 8バイト(int64_t…
この記事の Awkward のバージョンは1.X.Xです データはここのを使う。64バイト(double 8個)×1億イベント(エントリー)である。 phst.hateblo.jp 結果のまとめ 言語 ライブラリ ファイル形式 処理時間 スレッド数 Python awkward parquet 46 sec 1 C++ ROOT TT…
この記事の Awkward のバージョンは1.X.Xです エマルションの飛跡情報(x,y,ax,ay,ax0,ay0,ax1,ay1)とする。Visual StudioでコンパイルしたROOTと、Python+numpy,awkwardで作ったバージョンを比較する。イベント数は1億(108)本とする。 Visual Studio でコン…
直線で描く場合。 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…
Google Authenticator(Google認証システム、認証アプリ)にインポートした 時間ベースのワンタイムパスワード TOTP のシークレットキーを確認したいことがあるのでその方法。 Google Authenticatorから、アカウントを移行→アカウントのエクスポートで、必要…
def get_nuclei_yield(filename): lines = open(filename).readlines() flag=False nuclei_yield={} for i, line in enumerate(lines): if line=="[Calculations]\n": flag=True continue if flag: str1=line.split()[0] str2=line.split("=")[1].split(",")…
下記のコードでは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,…
同じデータを使って、CERN ROOT、Pythonのscipy、lmfit を使って正規分布でフィッティングするコードと結果を比較する。 まずは、データ生成部分 C++用 std::vector<double> vx{-3.65,-3.45,-3.35,-3.25,-3.15,-3.05,-2.95,-2.85,-2.75,-2.65,-2.55,-2.45,-2.35,-2.2</double>…
グリッド間隔、線の種類、線の幅、線の色、用紙サイズは自由に設定できるようにした。 要点は次の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.…
ポッドキャストも聞けるSpotify(スポティファイ) は、開発者向けのAPIを公開しています。 SpotifyのAPIでPodcastの情報を取得するためのサンプルコードを公開します。 Client IDとClient secret は Spotify for Developers で取得します。 pip install spoti…
ChatGPTに書かせた def split_numbers(total, ratios): # 各割合に対応する数値を計算 numbers = [total * ratio for ratio in ratios] # 小数点以下を四捨五入 numbers = [round(number) for number in numbers] # 残りの誤差を調整 total_numbers = sum(nu…
ヒストグラムのビン(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…
放射性崩壊などの時間発展をPythonで計算してみよう。 寿命 life=10 として、微分方程式は dx/dt=-x/life なので、 import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt def system(x, t): life = 10 dxdt = -x/life re…
多面体クラスである polyhedron を使えば良いが、一見どう使えばいいのか分からない。 例えば、y=0の平面上の三角形から高さ100の三角柱を描く場合は以下のPythonコードのようにする。 from solid import * from solid.utils import * x0 = 0 x1 = 20 x2 = -…
from PyPDF2 import PdfWriter, PdfReader def overlay(): file1 = r"file1.pdf" file2 = r"file2.pdf" file3 = r"overlay.pdf" back_ground = PdfReader(open(file1, "rb")) page1 = back_ground.pages[0] fore_ground = PdfReader(open(file2, "rb")) page…
ROOTのTH2DやTH2Fなどのクラスでは、2次元ヒストグラムを、legoっぽく図示できる。 ご存知の通り、Python + matplotlib の hist2dには、このような描画をするコマンドはない(はずである)。 というわけで、作ってみた。3次元バーを描画する関数であるbar3dを…
lmfit にはビルトイン (組み込み) 関数が多数用意されている。関数名を見ればだいたい何か分かるが、グラフで見れたほうが便利なので、主要な1次元の内蔵関数をグラフ化してみた lmfit.github.io グラフ化のための関数は最後に書いてあります 正規分布 / ガ…
この記事の Awkward のバージョンは1.X.Xです 基本的な例 phst.hateblo.jp Tree形式のデータがあり、あるパラメータにカット条件をかけながら(ゲートをかけながら)、他のグラフをインタラクティブに確認したいことがある 次の例では、dataXとdataYの2つの変…
pycrypto というモジュールはメンテナンスが止まっているので、pycryptodome をつかう pip install pycryptodome pypi.org 暗号化、復号化の関数 from Crypto.Cipher import AES from Crypto.Hash import SHA256 from Crypto import Random def create_aes(p…
Pythonで、二次元平面上の点列から、閉じた多角形の中にある点列を選ぶ方法。matplotlib.pathモジュールの関数 contains_points を使うと良いらしい。 コードの大半はChatGPTに書かせた。ありがとう! import numpy as np import matplotlib.path as mpath im…
phst.hateblo.jp の続き lmfitは、複数の2次元正規分布でもフィッティングができる gauss = lmfit.models.Gaussian2dModel(prefix="g1") params = gauss.make_params() model = gauss gauss = lmfit.models.Gaussian2dModel(prefix="g2") params.update(gaus…
HomeBrewをインストール brew.sh 上記のサイトにシェルコマンドが載ってる。記事執筆時は /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" だった。HomeBrewを入れると、ついでにXcodeもインストールされ…
Pythonで実装してみた 元画像を読み込むところ。BGRに分割し、分割された領域ごとの平均輝度値を求める import cv2 import glob import numpy as np orgfile = "original02.png" orgimg = cv2.imread(orgfile) P=20 #分割する縦横のピクセル数 Nx = int(orgi…
可能な限り全てのツイートを検索して取得する。ただし、サーチバン等により検索で出て来ないツイートは取得できない。 import tweepy tweets = [] query = "物理の駅" for page in tweepy.Cursor(api.search_tweets,q=query, tweet_mode='extended',result_t…
try: raise "ERROR" except: try: import traceback traceback.print_exc() except:pass