【发布时间】:2019-01-09 21:47:37
【问题描述】:
我正在尝试创建一个类似于 seaborn 所做的情节,但在本机 matplotlib 中。
我将数据框中的每个系列与绘图矩阵中的每个其他系列进行对比。
到目前为止,我已经绘制了它,标记了外轴,并将轴设置为沿列和行共享(因为这对数据最有效)。
我未能管理的最后一步是使所有地块的尺寸在物理上呈正方形。以下代码:
#scatter matrix
def plot_scatter_matrix(data):
dim = len(data.columns.values)
fig, axs = newfigure(dim, dim, sharex='col', sharey='row', figsize=(10,10))
fig.tight_layout()
for row, iname in enumerate(data.columns.values):
for col, jname in enumerate(data.columns.values):
axs[row,col].scatter(data[jname], data[iname])
if col == 0:
axs[row,col].set_ylabel(iname)
if row == len(data.columns.values)-1:
axs[row,col].set_xlabel(jname)
return fig, axs
fig, axs = plot_scatter_matrix(ndata)
plt.show()
实现了这一点(仅显示上半部分):
我曾尝试在调用scatter() 后使用axs[row,col].set_aspect(1.0, adjustable='box', share=True),但结果却是这样:
如您所见,有些成功地变成了方形,但它们的大小都不同。
仔细阅读文档和其他问题后,我感到很困惑。当此类事情的其他方法在过去的版本中已被弃用时,这并不容易。
【问题讨论】:
标签: python matplotlib