如何在我的身材上设置x_lim和y_lim? [Python 2.7 matplotlib]

时间:2012-06-08 11:02:17

标签: python matplotlib

我在策划这个数字时遇到了一些麻烦。我有一个文件,其中一些结果由我用c ++编写的应用程序计算,我想绘制计算数据的数字。

问题是我不知道X轴和Y轴的'max'和'min'限制......

我试过了:

# -*- 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行,in          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行,in   ylim       ret = ax.set_ylim(* args,** kwargs)文件“C:\ Python27 \ lib \ site-packages \ matplotlib \ axes.py”,第2642行,in   set_ylim       bottom,top = mtransforms.nonsingular(bottom,top,increase = False)文件   “C:\ Python27 \ lib \ site-packages \ matplotlib \ transforms.py”,第2282行,   在非奇异的       if(not np.isfinite(vmin))或(not np.isfinite(vmax)):NotImplementedError:此类型未实现

1 个答案:

答案 0 :(得分:3)

添加:

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

到您提供的第二个代码块,这会将您的x和限制设置为数据的最小值/最大值。