假设我有一个由 9 个大小相同的子图组成的 3x3 数组。是否可以制作一个 4x4 图形并用大标题替换顶部和最左侧的子图?
我知道理论上可以使用某种文本框,但是这些文本框的扩展性不是很好,需要进行大量调整。建议将不胜感激。
编辑:我正在考虑与此类似的东西,除了数组内有适当的图表:
假设我有一个由 9 个大小相同的子图组成的 3x3 数组。是否可以制作一个 4x4 图形并用大标题替换顶部和最左侧的子图?
我知道理论上可以使用某种文本框,但是这些文本框的扩展性不是很好,需要进行大量调整。建议将不胜感激。
编辑:我正在考虑与此类似的东西,除了数组内有适当的图表:
对我来说听起来是GridSpec
orsubplot2grid
的工作。
除了上面的链接,你可以在这里找到一些示例和代码
您可以使用大的、旋转的 x 和 y 标签来实现类似的效果:
熊猫
from pandas.tools.plotting import scatter_matrix
from pandas import DataFrame
from numpy.random import randn
import matplotlib.pyplot as plt
df = DataFrame(randn(1000, 8), columns=['Label1', 'Label2', 'Label3', 'Label4', 'Label5', 'Label6', 'Label7', 'Label8'])
fig = scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')
for axes in fig:
for ax in axes:
ax.set_ylabel(ax.get_ylabel(), rotation='horizontal', ha='right', fontsize=16)
ax.set_xlabel(ax.get_xlabel(), rotation='vertical', fontsize=16)
ax.set_yticklabels('')
ax.set_xticklabels('')
plt.gcf().set_facecolor('w')
海博恩
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="white")
df = DataFrame(randn(50, 6), columns=['Label1', 'Label2', 'Label3', 'Label4', 'Label5', 'Label6'])
g = sns.PairGrid(df, diag_sharey=False, size=1.4)
g.map_lower(sns.kdeplot, cmap="Blues_d")
g.map_upper(plt.scatter)
g.map_diag(sns.kdeplot, lw=2)
for axes in g.axes:
for ax in axes:
ax.set_ylabel(ax.get_ylabel(), rotation='horizontal', ha='right', fontsize=20)
ax.set_xlabel(ax.get_xlabel(), rotation='vertical', fontsize=20)
ax.set_yticklabels('')
ax.set_xticklabels('')
ax.set_frame_on(False)
plt.gcf().set_facecolor('w')
这两个示例都来自各自的教程,然后进行了一些调整。