0

図のプロットに問題があります。C++ で記述したアプリケーションによって計算されたいくつかの結果を含むファイルがあり、計算されたデータの図をプロットしたいと思います。

問題は、X軸とY軸の「最大」と「最小」の制限がわからないことです...

私は試した:

# -*- coding: utf-8 -*-
#!/usr/bin/env python

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt

def plot_it(ox, oy, x_label, y_label, filename) :

    fig = plt.figure()
    axis = fig.add_subplot(111)
    plt.xlabel(x_label)
    plt.ylabel(y_label)
    plt.ylim(min(oy),max(oy))
    plt.xlim(min(ox),max(ox))
    axis.plot(ox, oy, color = 'red')
    plt.savefig(filename)
    plt.clf()
    plt.close()

filename = input("Filename (file with data)\n>")
res = []
try :
    with open(filename, 'r') as file :
        for line in file :
            line = line.rstrip('\n')
            res.append(line.split(" "))
except IOError :
    print("IO error")

if len(res) != 0 :

    ox = []
    oy = []

    x_label = str(input("OX label\n>"))
    y_label = str(input("OY label\n>"))

    for i in range(0,len(res)) :
        ox.append(res[i][0])
        oy.append(res[i][1])

    plot_it(ox, oy, x_label, y_label, 'fig_' + str(filename[:len(filename)-4]) + '.png')

ファイルの場所: http://pastie.org/private/4rl64ule9ymljmp6g5bfzg (コピーして file.txt として保存するだけです)

これらのエラーが発生しました:

トレースバック (最新の呼び出しが最後): ファイル "E:/plotter.py"、43 行目、plot_it(ox, oy, x_label, y_label, 'fig_' + str(filename[:len(filename)-4]) 内 + '.png') ファイル "E:/plotter.py"、14 行目、plot_it plt.ylim(min(oy),max(oy)) ファイル "C:\Python27\lib\site-packages\matplotlib\pyplot .py"、1252 行目、ylim ret = ax.set_ylim(*args, **kwargs) ファイル "C:\Python27\lib\site-packages\matplotlib\axes.py"、2642 行目、set_ylim 下、上= mtransforms.nonsingular(bottom, top, increase=False) ファイル "C:\Python27\lib\site-packages\matplotlib\transforms.py"、2282 行目、非特異の場合 (not np.isfinite(vmin)) または ( np.isfinite(vmax) ではない): NotImplementedError: このタイプには実装されていません

4

1 に答える 1

3

追加:

plt.ylim(min(oy),max(oy))
plt.xlim(min(ox),max(ox))

あなたが与えるコードの2番目のブロックに、これはあなたのxと制限をあなたのデータの最小/最大に設定します。

于 2012-06-08T11:08:47.990 に答える