2023/6/14 逆格子マッピングのグラフをPythonを使って描く

Chat GPTを使ってPythonで動作する逆格子マッピングのグラフのコードを書いてもらったので役に立つかわかりませんがシェアします。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import os

# ファイルパスのリストを作成
file_paths = [
    r"",        #ファイルパスを入力。複数入れるなら,で区切る。
    r""
    # 追加のファイルパスを必要に応じて指定
]

# データを保持するリストを作成
data_list = []

# ファイルごとにデータを読み込み、リストに追加
for file_path in file_paths:
    if os.path.exists(file_path):
        df = pd.read_table(file_path, header=None, delimiter=r"\s+", na_values=['NAN'])
        df.fillna(0, inplace=True)  # NANを0に置き換え
        data_list.append(df)
    else:
        print(f"ファイルが存在しません: {file_path}")

# データを結合
if data_list:
    combined_data = pd.concat(data_list)

    # X, Y, Zの配列に変換
    y = np.array(combined_data[0])
    x = np.array(combined_data[1])
    z = np.array(combined_data[2])

    # カラーマップを作成
    custom_colors = ['#0000FF', '#00FFFF', '#00FF00', '#FFFF00', '#FF0000']
    cmap = colors.LinearSegmentedColormap.from_list('custom_cmap', custom_colors)

    # プロット
    fig, ax = plt.subplots()
    sc = ax.scatter(x, y, c=z, cmap=cmap, s=1, norm=colors.LogNorm(vmin=1, vmax=1e6, clip=True))
    cbar = fig.colorbar(sc)
    ax.set_xlabel('K')
    ax.set_ylabel('H')
    cbar.set_label('Intensity')

    # 画像の保存 svgとpngファイル。svgめっちゃ重い
    fig.savefig('image.svg', format='svg')  \
    fig.savefig('image.png', format='png')

    plt.show()
else:
    print("プロットするデータがありません。")

エラー出たらChat GPTに聞くと何とかしてくれます。たぶん。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です