物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Python+matplotlibでA4の方眼紙風PDFを作る

グリッド間隔、線の種類、線の幅、線の色、用紙サイズは自由に設定できるようにした。 要点は次の3つ plt.subplots_adjust()で枠線の外側をなくしてfigureを紙面全体にする plt.gca().axis("off") で枠線、目盛り、目盛りラベルを消す plt.plot(transform=pl…

Python+matplotlib legend(凡例)の操作: 記号作成、複数の記号を一つのラベルで表示など

matplotlib公式のlegendのチュートリアルの一部をこの記事で紹介する。 matplotlib.org matplotlibにおける凡例はplt.legend() とする。 label で指定したグラフの凡例が、グラフの隙間に自動的に描画される。 import numpy as np import scipy import matpl…

Python+matplotlib splines(枠線)、ticks(目盛り)、ticks label (目盛りラベル)を制御する

普通に描画する 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.…

Python: SpotifyのAPIでPodcastの情報を取得する

ポッドキャストも聞けるSpotify(スポティファイ) は、開発者向けのAPIを公開しています。 SpotifyのAPIでPodcastの情報を取得するためのサンプルコードを公開します。 Client IDとClient secret は Spotify for Developers で取得します。 pip install spoti…

Python 与えられた整数を指定された割合に整数で分割する方法

ChatGPTに書かせた def split_numbers(total, ratios): # 各割合に対応する数値を計算 numbers = [total * ratio for ratio in ratios] # 小数点以下を四捨五入 numbers = [round(number) for number in numbers] # 残りの誤差を調整 total_numbers = sum(nu…

Python+matplotlib ヒストグラムのbinを直接操作してplt.hist 以外で描写

ヒストグラムのビン(bin)の値を直接操作した後で、ヒストグラムっぽいグラフを作りたいことがあるだろう。 以下では、plt.hist を使った場合と、np.histgramで計算させた、binの位置 X とCounts Y を使って plt.hist 以外で描画する方法を紹介する。 データ…

Python+matplotlibで縁取り文字(白抜き文字/黒抜き文字)や太字を描く

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…

LaTeX (pdflatex) 無理やり日本語(半角文字以外)を使う

改行を含む日本語を書きたい場合は\begin{document}の前に \usepackage{CJKutf8} \long\def\Ja#1{\begin{CJK}{UTF8}{ipxm}#1\end{CJK}} または \usepackage{CJKutf8} \newcommand{\Ja}[1]{\begin{CJK}{UTF8}{ipxm}#1\end{CJK}} と書く。使い方は \Ja{ ここに…

Yahama RTX1200 ルーター からの syslogをWindows + PowerShellで受ける

Yahama ルーター 192.168.0.200 から Windowsサーバー 192.168.0.100 へsyslogを送ることにする。 Yamahaルーターの設定。syslog debugは膨大なのでoffが望ましいだろう。 syslog host 192.168.0.100 syslog facility local1 syslog notice on syslog info o…

Windows 11の初期設定で「ネットワークに接続しましょう」をネットワークなしで進む

gigazine.net セットアップ時に、Shift+F10 でコマンドプロンプトを立ち上げて cd oobe で C:\Windows\System32\oobe ディレクトリに移動し BypassNRO.cmd を実行すればOK。 自動的に再起動されるので、「ネットワークに接続しましょう」をスキップして、ロ…

Office 365 (Microsoft 365) のWebメールで常時BCC拡張機能を自作する

Office 365 (Microsoft 365) や、 OutlookのWebメールで、常に特定のメールアドレスにBCCしたい (いわゆる Always BCC) 需要があった。 Chromeの拡張機能を使うと簡単に実装できそうなのでやってみた。Chromeの拡張機能の作り方は以下のサイトを参考にしてほ…

Python: 常微分方程式を解く

放射性崩壊などの時間発展を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…

Windows: 保存されたWi-Fiのプロファイル(SSID)の優先順位を変更する

まず、Wi-Fi(無線LAN)で記録されたプロファイル(SSID)を全て表示する。必要なのはプロファイル名。 >netsh wlan show profiles インターフェイス Wi-Fi のプロファイル: グループ ポリシー プロファイル (読み取り専用) -----------------------------------…

CRediT(貢献者の役割の分類法) author statement 日本語訳

CRediT (Contributor Roles Taxonomy) つまり、貢献者の役割の分類法は、Elsevierによると、 個々の著者の貢献を認識し、著者の論争を減らし、共同作業を促進する目的 the intention of recognizing individual author contributions, reducing authorship d…

Python + SolidPython で三角柱を描く

多面体クラスである polyhedron を使えば良いが、一見どう使えばいいのか分からない。 例えば、y=0の平面上の三角形から高さ100の三角柱を描く場合は以下のPythonコードのようにする。 from solid import * from solid.utils import * x0 = 0 x1 = 20 x2 = -…

Python 2つのPDFファイルを重ね合わせて1つのファイルとして出力する方法

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…

Python + matplotlib の二次元ヒストグラムでレゴブロックっぽい3D図を作る

ROOTのTH2DやTH2Fなどのクラスでは、2次元ヒストグラムを、legoっぽく図示できる。 ご存知の通り、Python + matplotlib の hist2dには、このような描画をするコマンドはない(はずである)。 というわけで、作ってみた。3次元バーを描画する関数であるbar3dを…

LaTeX 全体のフォントをセリフ体からサンセリフ体にする方法

識字障害・ディスクレシア(dyslexia、発達障害の一形態)の方など、セリフ体の英語を読むのが難しい方がいる。私もやや読みにくい。なので、論文執筆時は、以下のコードでサンセリフ体にしている。 % To use Serif font, comment out the two lines. \usepack…

Python lmfit ビルトイン(定義済み)関数を使いこなす

lmfit にはビルトイン (組み込み) 関数が多数用意されている。関数名を見ればだいたい何か分かるが、グラフで見れたほうが便利なので、主要な1次元の内蔵関数をグラフ化してみた lmfit.github.io グラフ化のための関数は最後に書いてあります 正規分布 / ガ…

Python jupyter lab + awkward arrayで2列データの片方にゲートをかけながら動的にグラフを作る

この記事の Awkward のバージョンは1.X.Xです 基本的な例 phst.hateblo.jp Tree形式のデータがあり、あるパラメータにカット条件をかけながら(ゲートをかけながら)、他のグラフをインタラクティブに確認したいことがある 次の例では、dataXとdataYの2つの変…

Python AESで暗号化、復号化する

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…

Windows 11でAndroidのアプリ(.apkファイル)をインストールして起動する方法

参照 pc.watch.impress.co.jp Windows 11を22H2以降にする Microsoft StoreからAmazonアプリストアをインストールする Android用Windowsサブシステム設定から開発者モードを有効にする システムのファイルを開いて、WSA仮想マシンを起動する (何かを起動すれ…

Python+matplotlib 二次元平面上の点列から、閉じた多角形内の点列を選ぶ

Pythonで、二次元平面上の点列から、閉じた多角形の中にある点列を選ぶ方法。matplotlib.pathモジュールの関数 contains_points を使うと良いらしい。 コードの大半はChatGPTに書かせた。ありがとう! import numpy as np import matplotlib.path as mpath im…

Windows 11の諸問題と解決法

Windows 11 のデフォルトの壁紙 エクスプローラーのメニュー エクスプローラー上で右クリックしたときのメニューが簡素なものになってしまった。「その他のオプションを表示」で以前のメニューが見れるものの、1クリック増えてしまい不便である。例: VScode…

Python lmfitで2個の2次元正規分布でフィッティングする

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…

MacでPython 3をインストールする方法

HomeBrewをインストール brew.sh 上記のサイトにシェルコマンドが載ってる。記事執筆時は /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" だった。HomeBrewを入れると、ついでにXcodeもインストールされ…

Python OpenCV 大量のアイコンからモザイクアートを作ってみる

Pythonで実装してみた 元画像を読み込むところ。BGRに分割し、分割された領域ごとの平均輝度値を求める import cv2 import glob import numpy as np orgfile = "original02.png" orgimg = cv2.imread(orgfile) P=20 #分割する縦横のピクセル数 Nx = int(orgi…

Python tweepy Twitter APIの使い方 (メモ)

可能な限り全てのツイートを検索して取得する。ただし、サーチバン等により検索で出て来ないツイートは取得できない。 import tweepy tweets = [] query = "物理の駅" for page in tweepy.Cursor(api.search_tweets,q=query, tweet_mode='extended',result_t…

Python: Jupyter上で、tracebackで例外をcatchしてから標準出力して正常終了する

try: raise "ERROR" except: try: import traceback traceback.print_exc() except:pass

Python tweepy twitterの標準検索APIの仕様 (日本語訳)

https://docs.tweepy.org/en/latest/api.html#tweepy.API.search_tweets API.search_tweets(q, *, geocode, lang, locale, result_type, count, until, since_id, max_id, include_entities) Returns a collection of relevant Tweets matching a specified …