gpt4 book ai didi

Python + GNU 图 : dealing with missing values

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:20 24 4
gpt4 key购买 nike

为了清楚起见,我将我的问题隔离开来,并使用了一个小而完整的片段来描述它。

我有一堆数据,但有很多缺失的部分。我想忽略这些(如果是折线图,则在图中打断)。我已经设定 ”?”成为缺失数据的符号。这是我的片段:

import math
import Gnuplot

gp = Gnuplot.Gnuplot(persist=1)
gp("set datafile missing '?'")

x = range(1000)

y = [math.sin(a) + math.cos(a) + math.tan(a) for a in x]

# Force a piece of missing data
y[4] = '?'

data = Gnuplot.Data(x, y, title='Plotting from Python')
gp.plot(data);

gp.hardcopy(filename="pyplot.png",terminal="png")

但它不起作用:

> python missing_test.py
Traceback (most recent call last):
File "missing_test.py", line 8, in <module>
data = Gnuplot.Data(x, y, title='Plotting from Python')
File "/usr/lib/python2.6/dist-packages/Gnuplot/PlotItems.py", line 560, in Data
data = utils.float_array(data)
File "/usr/lib/python2.6/dist-packages/Gnuplot/utils.py", line 33, in float_array
return numpy.asarray(m, numpy.float32)
File "/usr/lib/python2.6/dist-packages/numpy/core/numeric.py", line 230, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.

出了什么问题?

最佳答案

Gnuplot 正在调用 numpy.asarray 将您的 Python 列表转换为 numpy 数组。不幸的是,此命令(使用 dtype=numpy.float32)与包含字符串的 Python 列表不兼容。

您可以像这样重现错误:

In [36]: np.asarray(['?',1.0,2.0],np.float32)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)

/usr/lib/python2.6/dist-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
228
229 """
--> 230 return array(a, dtype, copy=False, order=order)
231
232 def asanyarray(a, dtype=None, order=None):

ValueError: setting an array element with a sequence.

此外,Gnuplot python module (version 1.7) docs

  • There is no provision for missing data points in array data (which gnuplot allows via the 'set missing' command).

我不确定这个问题是否已在 1.8 版本中修复。

您与 gnuplot 的关系如何? Have you tried matplotlib

关于Python + GNU 图 : dealing with missing values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com