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に聞くと何とかしてくれます。たぶん。