Python 3.x 设置矩阵面板的格式

Python 3.x 设置矩阵面板的格式,python-3.x,pandas,Python 3.x,Pandas,熊猫中的散射矩阵绘图仪似乎有点笨重(希望不是我!)。这是我的问题: import numpy as np import pandas as pd import pylab as pl scatter_matrix = pd.plotting.scatter_matrix data = np.random.normal(loc=0, scale=10, size=(1000, 5)) log_data = np.random.randint(-7, -3, (1000, 1)).astype

熊猫中的散射矩阵绘图仪似乎有点笨重(希望不是我!)。这是我的问题:

import numpy as np
import pandas as pd
import pylab as pl

scatter_matrix = pd.plotting.scatter_matrix

data = np.random.normal(loc=0, scale=10, size=(1000, 5))

log_data = np.random.randint(-7, -3, (1000, 1)).astype(float)
log_data = np.array([10**_ for _ in log_data])

df = pd.DataFrame(data=data, columns=list("ABCDE"))
df.B = log_data

fig = pl.figure(figsize=(6.5, 6))
ax0 = fig.add_subplot(111)
scatter_matrix(df, alpha=0.2, ax=ax0, diagonal="kde", marker=".", s=1, c="k")    
fig.show()
首先,KDE图没有正确缩放(负KDE?!?),跨多个数量级的数据(“log_数据”)需要将x/y轴比例设置为log。对于该图,“B”行中的所有y轴需要设置为对数刻度,B列中的所有x轴需要设置为对数刻度。这是我试过的

# get axis for second panel
ax1 = fig.get_axes()[1]

# set y-axis to symlog scale
ax1.set_ylim([-1E-3, 1E-3])
ax1.set_yscale("symlog", linthreshy=1E-6)
这将在第二个面板中重新缩放y轴,但我无法知道刻度在哪里。然而,如果我重新缩放第一个面板,我会得到对应于ax1的刻度…但这也会弄乱kde图

ax0 = fig.get_axes()[0]
ax0.set_ylim([-1E-3, 1E-3])
ax0.set_yscale("symlog", linthreshy=1E-6)
有没有一种方法可以让KDE和“其他”绘图正确缩放,并有代表两者的记号标记(可能KDE记号在左侧,其他记号在右侧)