実現したいこと
グラフを出力したいディレクトリの中に、1.csv、2.csv、10.csvという3つのファイルが入っているとします。「該当のソースコード」で1.csv、2.csv、10.csvのdensity.jpgとp.jpgが正しく出力されます。
今、1.csvと10.csvだけのdensity.jpgとp.jpgを出力したときには、8行目と22行目の
files = Path(".").glob("*.csv")をfiles = Path(".").glob("*.csv")
を
files = Path(".").glob("*.csv")をfiles = Path(".").glob("1*.csv")
にすれば良いですが、8行目も22行目も直さなくてはいけないです。
今はグラフが2つですが、いくつもグラフを描きたいときは8行目と22行目のような修正をたくさんしなければいけないので、1回で済ませたいです。どのように直せば良いでしょうか。
該当のソースコード
python
1import pandas as pd 2import matplotlib.pyplot as plt 3import glob 4from pathlib import Path 5 6savename ='density.jpg' 7fig, ax = plt.subplots() 8files = Path(".").glob("*.csv") 9 10for file in files: 11 df = pd.read_csv(file, encoding="utf-8") 12 ax.plot('y[mm]', 'density[kg/m3]', data=df, marker='none', label=file.stem, linestyle='-') 13 14ax.set_xlabel('$y$[mm]',fontsize=15) 15ax.set_ylabel('$density[kg/m3]$',fontsize=15) 16ax.grid() 17plt.savefig(savename) 18plt.show() 19 20savename ='p.jpg' 21fig, ax = plt.subplots() 22files = Path(".").glob("*.csv") 23 24for file in files: 25 df = pd.read_csv(file, encoding="utf-8") 26 ax.plot('y[mm]', 'pressure[Pa]', data=df, marker='none', label=file.stem, linestyle='-') 27 28ax.set_xlabel('$y$[mm]',fontsize=15) 29ax.set_ylabel('$pressure$[Pa]',fontsize=15) 30ax.grid() 31plt.savefig(savename) 32plt.show()
試したこと
以下のようにすると、density.jpgは正しく表示されますが、p.jpgは線のない白紙のグラフが表示されました。
python
1import pandas as pd 2import matplotlib.pyplot as plt 3import glob 4from pathlib import Path 5 6files = Path(".").glob("1*.csv") 7 8savename ='density.jpg' 9fig, ax = plt.subplots() 10 11for file in files: 12 df = pd.read_csv(file, encoding="utf-8") 13 ax.plot('y[mm]', 'density[kg/m3]', data=df, marker='none', label=file.stem, linestyle='-') 14 15ax.set_xlabel('$y$[mm]',fontsize=15) 16ax.set_ylabel('$density[kg/m3]$',fontsize=15) 17ax.grid() 18plt.savefig(savename) 19plt.show() 20 21savename ='p.jpg' 22fig, ax = plt.subplots() 23 24for file in files: 25 df = pd.read_csv(file, encoding="utf-8") 26 ax.plot('y[mm]', 'pressure[Pa]', data=df, marker='none', label=file.stem, linestyle='-') 27 28ax.set_xlabel('$y$[mm]',fontsize=15) 29ax.set_ylabel('$pressure$[Pa]',fontsize=15) 30ax.grid() 31plt.savefig(savename) 32plt.show()
回答3件
あなたの回答
tips
プレビュー
2025/12/25 04:47