実現したいこと
ディレクトリ構造は以下のようになっています。
pref1
├a.csv
├b.csv
├c.csv
├source.py
pref2
├b.csv
├c.csv
├d.csv
├source.py
a、b、c、dはデータ名です。
分かりにくくて申し訳ありませんが、例えば、pref1のときのb.csvとpref2のときのb.csvはファイル名同じですが別の数値が入っています。
pref1の中のb.csv
X Y
200 3
300 3.6
pref2の中のb.csv
X Y
600 3.4
700 2.8
「該当のソースコード」を実行すると、prefの値(1か2)で分けて2つの図が出力されます。
図1のマーカーの色は自動設定になっています。
図2のマーカーの色を図1を踏まえて自動設定にする方法はありますでしょうか。
図1の色がa, b, cの順に青、オレンジ、緑なので、図2の色をb, c, dの順にオレンジ、緑、(その次の自動設定で決まる色)にしたいです。
1つ1つ手動で色を設定するのは間違えそうなので、できるだけ自動設定機能を利用したいです。
該当のソースコード
python
1import pandas as pd 2import numpy as np 3import csv 4import matplotlib.pyplot as plt 5 6pref = 2 7if pref==1: 8 setxmin = 0 9 setxmax = 500 10 setymin = 2.6 11 setymax = 4.0 12 savename='result1.jpg' 13 data_name = ['a', 'b', 'c'] 14 15elif pref==2: 16 setxmin = 500 17 setxmax = 1000 18 setymin = 2.6 19 setymax = 4 20 savename='result2.jpg' 21 data_name = ['b', 'c', 'd'] 22 23plt.rcParams['mathtext.fontset'] = 'stix' 24fig, ax = plt.subplots() 25 26for i, dn in enumerate(data_name): 27 df = pd.read_csv(dn + '.csv') 28 ax.plot('X', 'Y', data=df, marker='o', label=dn, linestyle='None') 29 30ax.set_xlabel('$X$',fontsize=15, fontname="Times New Roman") 31ax.set_ylabel('$Y$',fontsize=15, fontname="Times New Roman") 32ax.grid() 33ax.legend(loc='upper left', bbox_to_anchor=(1.05, 1), fontsize=18) 34ax.set_xlim([setxmin,setxmax]) 35ax.set_ylim([setymin,setymax]) 36plt.tick_params(labelsize=11) 37plt.tight_layout() 38plt.savefig(savename) 39plt.show()
試したこと
予めファイル名と色を対応させておくのかなと思いましたが、よく分かりませんでした。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/07/07 08:46