pandas.scatter_matrix 函数开始绘制模糊和损坏的图

Posted

技术标签:

【中文标题】pandas.scatter_matrix 函数开始绘制模糊和损坏的图【英文标题】:pandas.scatter_matrix function started to draw fuzzy and corrupted plot 【发布时间】:2017-05-26 16:12:57 【问题描述】:

pandas.scatter_matrix 的功能停止在 Jupyter Notebook 中正常工作。

它一直在画这个情节:

现在它以这种方式显示:

我不知道是什么影响了这个。

可能是什么原因?

更新

看起来在以前的单元格中使用 seaborn heatmap 会损坏功能。

如何从 seaborn.heatmap 中恢复?

更新 2

matplotlib.style.use('classic')

没有完全恢复

更新 3

以下命令

plt.rcParams.update(plt.rcParamsDefault)

也只是部分恢复。

【问题讨论】:

这通常发生在import seaborn 命令之后,但是matplotlib.style.use('ggplot') 给你的效果相同或非常相似,所以尝试使用matplotlib.style.use(...) 【参考方案1】:

更新:

如this great answer中所述:

%matplotlib inline 使用自己的rcParams。你可以从 来源,但可以说更简单的方法可能只是保存 rcParams 作为inline_rc%matplotlib inline 之后的单元格魔法 这个例子,以后再用。

saved_plt_params = plt.rcParams  # call it before `import seaborn` !
import seaborn
...
plt.rcParams = saved_plt_params

旧答案:

这应该“修复”样式:

matplotlib.style.use('classic')

注意:您可能想了解matplotlib styles

演示:

In [4]: s = pd.Series(np.random.randn(100)).add(.1).cumsum()

In [5]: %matplotlib
Using matplotlib backend: Qt5Agg

In [6]: s.plot()
Out[6]: <matplotlib.axes._subplots.AxesSubplot at 0xbe16d68>

在我们执行import seaborn之后:

In [7]: import seaborn

In [8]: s.plot()
Out[8]: <matplotlib.axes._subplots.AxesSubplot at 0xf4782e8>

让我们“修复”它:

In [10]: plt.style.use('classic')

In [11]: s.plot()
Out[11]: <matplotlib.axes._subplots.AxesSubplot at 0xf6e3cc0>

【讨论】:

你确定是风格吗?情节看起来不仅风格不同,而且损坏了:网格线是零散的并且不统一。无论如何,感谢您的帮助,但您的命令无法恢复模式 100% @Dims,很难看出这些图上的差异——它们是什么? 第一个具有“线框”样式,第二个(“损坏”)具有纯色背景和脏网格线,第三个(“部分恢复”)具有灰色边距。 @Dims,抱歉,这超出了我的 matplotlib 知识范围...我在您的问题中添加了“matplotlib”标签 - 这可能会吸引一些 matplotlib 专家 @Dims,你看到this answer的脚注了吗?

以上是关于pandas.scatter_matrix 函数开始绘制模糊和损坏的图的主要内容,如果未能解决你的问题,请参考以下文章

pandas.scatter_matrix 返回错误:rowNum 属性在 Matplotlib 3.2 中已弃用,将在两个次要版本后删除

如何修复 Pandas Scatter_matrix 中过长的轴标签?

不破坏开闭原则的数据构造函数

getStructuringElement函数以及开闭腐蚀膨胀原理讲解

测开之路十一:作用域闭包和修饰器

测开之路九十九:js函数事件window窗体对象