matplotlib < Figure size 800x800 with 0 Axes>使用plt.show()Jupyter Notebook时

wi3ka0sx  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(402)

我正在尝试做一个CISCO物联网大数据课程,我必须做一个实验在jupyter笔记本与Python内核。即使我做的和实验室里显示的一模一样,我还是看不清那个数字。它只是向我展示:<Figure size 800x800 with 0 Axes>
代码如下:

%matplotlib inline
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from ipywidgets import interact

def scatter_view(x, y, z, azim, elev):
    # Init figure and axes
    fig = plt.figure(figsize=(8, 8))
    ax = Axes3D(fig)
    
    # Compute scatter plot
    ax.scatter(x, y, z)
    ax.set_xlabel('D rate (Mbit/s)', fontsize=16)
    ax.set_ylabel('U rate (Mbit/s)', fontsize=16)
    ax.set_zlabel('P rate (1/s)', fontsize=16)
    ax.azim = azim
    ax.elev = elev

xi = df_rates['download_rate']
yi = df_rates['upload_rate']
zi = df_rates['ping_rate']
interact(lambda azim, elev: scatter_view(xi, yi, zi, azim, elev),
         azim=(0, 90), elev=(0, 90))
plt.show()

我曾经尝试过改变图的大小,使用matplotlib在行导入之前或之后。我在互联网上找不到解决方案。我对这个概念很陌生,如果有人能解释为什么它没有显示出来。谢谢!

lrl1mhuk

lrl1mhuk1#

更换管路

ax = Axes3D(fig)

ax = fig.add_subplot(projection='3d')

参见documentation
通过将projection=“3d”关键字参数传递给Figure.add_subplot来创建3D轴(Axes 3D类):

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(projection='3d')

还引用了Axis3D的API文档:
注记
作为用户,您不直接示例化轴,而是使用轴创建方法;例如,从pyplot或Figure:subplots、subplot_mosaic或Figure.add_axes。

相关问题