我使用以下代码创建一个 pandas 散点矩阵:
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')
This result in the following scatter-matrix:
第一行没有 ytick 标签,第三列没有 xtick 标签,第三项“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 https://github.com/pydata/pandas/blob/master/pandas/tools/plotting.py#L160
编辑,回应被拒绝的评论:
这样做的明显扩展是ax[0, 0].xaxis.set_visible(True)
等等,不工作。由于某种原因, scatter_matrix 似乎为 axis[2, 2] 设置了刻度和标签,但没有使它们可见,但它没有为其余的设置刻度和标签。如果您决定有必要在其他子图上显示刻度和标签,则必须深入研究上面链接的代码。
具体来说,将 if 语句的条件更改为:
if i == 0
if i == n-1
if j == 0
if j == n-1
分别。我还没有测试过,但我认为它会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)