【问题标题】:assigning matplotlib plot objects to _将 matplotlib 绘图对象分配给 _
【发布时间】:2019-04-15 19:24:55
【问题描述】:

我最近开始了 DataCamp 的 Python 统计思维(第 1 部分)课程,讲师提到在 Python 中构建绘图时,惯例通常是在构建绘图时将绘图对象分配给 NULL 运算符“_”,之前显示情节。

这真的是约定吗?我找不到太多的证据,我也想不出为什么它会成为惯例的理由。下面的代码 sn-p 取自课程示例并演示了我的意思。

# Plot all ECDFs on the same plot
_ = plt.plot(x_set, y_set, marker='.', linestyle='none')
_ = plt.plot(x_vers, y_vers, marker='.', linestyle='none')
_ = plt.plot(x_virg, y_virg, marker='.', linestyle='none')

# Annotate the plot
_ = plt.legend(('setosa', 'versicolor', 'virginica'), loc='lower right')
_ = plt.xlabel('petal length (cm)')
_ = plt.ylabel('ECDF')

# Display the plot
plt.show()

【问题讨论】:

    标签: python matplotlib operators variable-assignment assignment-operator


    【解决方案1】:

    正如in this answer 所讨论的,_ 通常用于存储“一次性”结果,这就是这里发生的事情。 matplotlib 调用都返回将打印到您的终端(或可能是笔记本)的结果,因此为防止这种情况,这些结果将被捕获在_ 中以防止它们显示。是否选择这样做取决于您。

    正如 cmets 中所指出的,如果您使用的是 IPython 或 Jupyter,您还可以通过在行尾添加分号来抑制给定行的输出。

    【讨论】:

    • 也许有人应该提到,现在使用 IPython 很常见,并且可以通过附加分号 plt.plot([1,2,3]); 来抑制 IPython 中的输出,这看起来不那么奇怪了。
    • 感谢@ImportanceOfBeingErnest。我认为这是有道理的。我想知道它是否会与 _ 也可用于调用控制台的最后一个结果输出这一事实相冲突。对此有什么想法吗?
    • 好吧,如果您将最后一个结果分配给_,您仍然可以通过单元格中的_ 访问它,因此它与默认行为一致。
    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多