私の同僚は、データベースからデータを収集してプロットするスクリプトを私に渡しました。スクリプトを自分で使用したとき、プロットは同じに見えず、Matplotlibのバージョンと関係しています。異なるmatplotlibバージョンでのプロットの相違
データのプロットを行うスクリプトは非常に短いです:
import matplotlib.pyplot as plt
import csv
import os
from dateutil import parser
def plot(outputDir,plotsDir,FS):
allfiles = os.listdir(outputDir)
flist = []
for f in allfiles:
if 'csv' in f.lower(): flist.append(f)
for f in flist:
with open(outputDir + '/' + f, 'rt') as ff:
data = list(csv.reader(ff,delimiter=FS))
values = [i[2] for i in data[1::]]
values = ['NaN' if v is '' else v for v in values]
time = [parser.parse(i[1]) for i in data[1::]]
plt.xlabel('Time_[UTC]')
plt.plot(time, values)
plt.xticks(rotation=40)
if os.path.isdir(plotsDir) != 1:
os.mkdir(plotsDir, 777)
plt.savefig('{}/{}_Data.png'.format(plotsDir, f[:-4]), bbox_inches='tight', dpi=160)
plt.clf()
outputdir = 'C:/Users/matthijsk/Documents/Test'
plotsdir = outputdir + '/plots'
fs = ','
plot(outputdir, plotsdir, fs)
私はmatplotlibのバージョン2.1.0を使用して、それを実行すると、私のイメージは以下のようになります。私はmatplotlibのを使用して、それを実行すると
stationNo,dtg(UTC),TT_[°C],source_TT,quality_TT
10381,2017-01-01 00:00:00,3.0,ob,na
10381,2017-01-01 01:00:00,3.0,ob,na
10381,2017-01-01 02:00:00,2.4,ob,na
10381,2017-01-01 03:00:00,2.5,ob,na
10381,2017-01-01 04:00:00,2.5,ob,na
10381,2017-01-01 05:00:00,2.3,ob,na
10381,2017-01-01 06:00:00,1.9,ob,na
10381,2017-01-01 07:00:00,1.0,ob,na
10381,2017-01-01 08:00:00,0.1,ob,na
10381,2017-01-01 09:00:00,0.9,ob,na
01:スクリプトは、このようなルックスを読んでいるファイル
![Matplotlib version 2.0.2](https://i.stack.imgur.com/X8421.png)
:バージョン2.0.2、それがになっている道を探します
これを引き起こしたMatplotlibで変更されたことは誰でも説明できますか?そして、明らかに私はこれを引き起こしている作図に何か間違っています。誰もが間違いに気付くことができますか? 私は既に試してみました
values = [float(value) if value.isnumeric() else None for value in values]
しかし、それはそれを解決しませんでした。 注:標準以外のパッケージ(Pandasなど)を使用するのは、そのようなパッケージのインストールを承認するのは面倒です。