PyPlot 中的surf函数在文本中使用不了

我在终端中使用没问题,但把它写到文本中运行就报错
1 using PyPlot
2 u = LinRange(0,2*π,100)
3 v = LinRange(0,π,100)
4 x = cos.(u).*sin.(v)
5 y = sin.(u).*sin.(v)
6 z = cos.(v)
7 surf(x,y,z)
报错如下
bubble@pop-os:~/WorkSpace/julialn$ julia plot.jl
/home/bubble/.local/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3agg.py:16: UserWarning: The Gtk3Agg backend is known to not work on Python 3.x with pycairo. Try installing cairocffi.
"The Gtk3Agg backend is known to not work on Python 3.x with pycairo. "

报错说了 Gtk3AggPython 3.x + pycairo 不兼容的问题,它也给了建议让你装 cairocffi 你可以试试他的建议 sudo apt-get install python3-cairocffi

ref:

或者换个后端 Gtk3Agg 改成 qt5agg

还可以试试 Plots

using Plots
pyplot()
u = linspace(0,2*π,100)
v = linspace(0,π,100)
x = cos.(u) * sin.(v)'
y = sin.(u) * sin.(v)'
z = ones(100) * cos.(v)'
surface(x,y,z)

刚刚发现 plots 的函数名与参数有点变化,那就暂不推荐了。

好了,在文本中最后一行加上 show()就行了

嗯不怎么用 PyPlot 忘了还有这坑了