matplotlib - 当 DataFrame-Column 缺少值时 PyPlot 会抛出错误

标签 matplotlib julia

我有以下问题:

我想从数据框中绘制一个缺少值的变量,这些值表示为“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/

相关文章:

python - 在 Pandas v0.20 和 matplotlib 中为条形分配颜色的问题

matplotlib - 增加 matplotlib 图例中符号的大小?

python - 生成自定义颜色条 : match data with color scheme

python - 在 Python 中,如何创建基于 groupby() 的两个类别的线图,其中一个类别是图例?

arrays - Julia,使用 findall 重置 3d 数组中的第三行

random - 从自定义分布生成随机值

types - Julia : ceil/floor 可以返回一个整数吗?

python - 对于大文件,Python 中的整数数据输入 -> 平均 -> float 据输出

arrays - Julia,在两个数组中选择实例的整数与 boolean 结果

machine-learning - 错误:在Julia中使用Flux的“DimensionMismatch(”矩阵A的尺寸为(1024,10),向量B的长度为9”)