我有以下问题:
我想从数据框中绘制一个缺少值的变量,这些值表示为“NA”。但是,如果我继续使用 Pyplot
x = df[df[:country] .== "Belgium",:year]
y = df[df[:country] .== "Belgium",:hpNormLog]
plot(x, y, "b-", linewidth=2)
我收到以下错误消息:
PyError (:PyObject_Call) <class 'TypeError'> TypeError("float() argument must be a string or a number, not 'PyCall.jlwrap'",) File "C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 3154, in plot ret = ax.plot(*args, **kwargs) File "C:\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1811, in inner return func(ax, *args, **kwargs) File "C:\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 1425, in plot self.add_line(line) File "C:\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 1708, in add_line self._update_line_limits(line) File "C:\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 1730, in _update_line_limits path = line.get_path() File "C:\Anaconda3\lib\site-packages\matplotlib\lines.py", line 925, in get_path self.recache() File "C:\Anaconda3\lib\site-packages\matplotlib\lines.py", line 621, in recache y = np.asarray(yconv, np.float_) File "C:\Anaconda3\lib\site-packages\numpy\core\numeri...
如果我有解决方案,我将非常感激。
最好, 伊利亚
最佳答案
我找到了以下解决方案。我对 Julia 的工作原理还不够深入,所以我只能说哪些有效,哪些无效。可以使用上面编写的代码绘制具有 NaN 的数组,但是 DataFrame 的列不允许做同样的事情。该列需要先转换为数组,然后才能使用缺失值进行绘制。下面的代码解决了这个问题:
x = df[df[:country] .== "Belgium",:year]
ytest = df[df[:country] .== "Belgium",:hpNormLog]
y = convert(Array,ytest,NaN)
plot(x, y, "b-", linewidth=2)
x 不包含缺失值,因此我可以继续使用 DataFrame,但 y 确实包含缺失值,因此需要将其转换为数组。 Convert 的第三个参数指定应转换哪些缺失值,在本例中转换为 NaN。
关于matplotlib - 当 DataFrame-Column 缺少值时 PyPlot 会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40341299/