微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas 3×3散射矩阵缺少标签

我使用以下代码创建一个pandas scatter-matrix

import numpy as np
import pandas as pd

a = np.random.normal(1, 3, 100)
b = np.random.normal(3, 1, 100)
c = np.random.normal(2, 2, 100)

df = pd.DataFrame({'A':a,'B':b,'C':c})
pd.scatter_matrix(df, diagonal='kde')

这导致以下散布矩阵:

第一行没有ytick标签,第3行没有xtick标签,第3项“C”没有标记.

知道如何用缺少的标签完成这个情节吗?

解决方法:

访问有问题的子图并更改其设置.

axes = pd.scatter_matrix(df, diagonal='kde')
ax = axes[2, 2] # your bottom-right subplot
ax.xaxis.set_visible(True)
draw()

您可以在下面的链接中检查scatter_matrix函数标记方式.如果您发现自己一遍又一遍地这样做,请考虑将代码复制到文件中并创建自己的自定义scatter_matrix函数.

https://github.com/pydata/pandas/blob/master/pandas/tools/plotting.py#L160

编辑,以回应被拒绝的评论

这个明显的扩展,做ax [0,0] .xaxis.set_visible(True)等等,都行不通.出于某种原因,scatter_matrix似乎为轴[2,2]设置了刻度和标签而没有使它们可见,但它没有为其余部分设置刻度和标签.如果您认为有必要在其他子图上显示刻度和标签,则必须深入研究上面链接代码.

具体来说,将if语句的条件更改为:

if i == 0
if i == n-1
if j == 0
if j == n-1

分别.我没有测试过,但我认为它会起作用.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐