- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 4 个不同的 df.hist(columns=, by=)
我想插入到 GridSpec(2, 2) 中。
它们中的每一个都如下所示:
这是代码:
stuff = [df1, df2, df4, df3]
col = ['blue', 'orange', 'grey', 'green']
fig = plt.figure(figsize=(10,10))
gs = gridspec.GridSpec(2, 2)
for i in range(0, len(stuff)):
ax = plt.subplot(gs[i])
stuff[i].hist(column='quanti_var', by=stuff[i].quali_var, alpha=.5, color=col[i], ax=ax)
C:\Anaconda3\lib\site-packages\pandas\tools\plotting.py:3234: UserWarning: To output multiple subplots, the figure containing the passed axes is being cleared
"is being cleared", UserWarning)
SubplotSpec
没有成功。任何的想法 ?
最佳答案
解决方法是放置matplotlib
Axes
pd.DataFrame.hist()
返回的对象成具有所需布局的图形。不幸的是,放置新 Axes
对象到现有 Figure
有点牵连。GridSpec
布局
使用嵌套 matplotlib.gridspec.GridSpec
创建您想要的布局并不太复杂s(参见 here 示例)。像这样的东西。
import matplotlib.gridspec as gs
num_outer_columns = 2
num_outer_rows = 2
num_inner_columns = 2
num_inner_rows = 3
outer_layout = gs.GridSpec(num_outer_rows, num_outer_columns)
inner_layout = []
for row_num in range(num_outer_rows):
inner_layout.append([])
for col_num in range(num_outer_columns):
inner_layout[row_num].append(
gs.GridSpecFromSubplotSpec(
num_inner_rows,
num_inner_columns,
outer_layout[row_num, col_num]
)
)
ax = plt.subplot(inner_layout[outer_row_num][outer_col_num][inner_row_num, inner_col_num])
在此网格中创建子图并妥善存放
ax
s 稍后。
Axes
进入现有
Figure
df.hist()
调用将产生如下内容:
In [1]: dframe.hist(column=x, by=y)
Out[1]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1189be160>,
<matplotlib.axes._subplots.AxesSubplot object at 0x118e3eb50>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x118e74d60>,
<matplotlib.axes._subplots.AxesSubplot object at 0x118ea8340>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x118e76d62>,
<matplotlib.axes._subplots.AxesSubplot object at 0x118ea9350>]],
dtype=object)
ax
之前使用您的
inner_layout
定位的对象与
AxesSubplot
上面返回的对象。不幸的是没有方便的
ax.from_axes(other_ax)
方法来做到这一点,所以你必须复制
Axes
返回者
df.hist()
通过关注
this answer 手动结束.
关于python - 多个子图的 GridSpec "the figure containing the passed axes is being cleared",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32371571/
这个问题已经有答案了: How to plot multiple Seaborn Jointplot in Subplot (4 个回答) 已关闭 5 年前。 我正在处理的一些最小代码。有些参数可能看
我的问题非常简单:我不能在最后一个参数中执行“:”图(strecke, strecke2, "Metern/s 中的 Strecke", "S(t) 图", 0, :)因为它告诉我:“str”和“in
我在使用 matplotlib 的 gridspec 时遇到了一个我似乎无法弄清楚的简单错误。谁能告诉我哪里出错了? import matplotlib.pyplot as plot import m
我正在使用嵌套 GridSpecFromSubplotSpec创建一个嵌套的轴网格。我有两组独立的轴,一个顶部轴和一个底部轴。每组有四个轴,排列在 2x2 网格中。 这是我正在使用的代码和我获得的结果
我目前有 2 个使用 seaborn 的子图: import matplotlib.pyplot as plt import seaborn.apionly as sns f, (ax1, ax2)
我目前有 2 个使用 seaborn 的子图: import matplotlib.pyplot as plt import seaborn.apionly as sns f, (ax1, ax2)
我正在尝试弄清楚如何将另一个立方体形状的图放置在三个子图的右侧 import matplotlib.pyplot as plt import matplotlib.gridspec as gridsp
我正在尝试创建一个类似于以下内容的情节 this question . 为什么我只得到两个面板,即只有 gs2: import numpy as np import matplotlib.pyplot
我有一些代码可以绘制网格,每个单元格中的数据都是不同的并且具有非常特定的位置。我发现执行此操作的最简单方法是使用 gridspec 创建网格并使用它来精确定位我的子图,但是我遇到了一个问题,即整个网格
我有一个 GridSpec 定义的带有子网格的布局,其中一个应该包含一个颜色条 import pylab as plt import numpy as np gs_outer = plt.GridSp
如何在 GridSpec 分割框架中将图像居中?我有下面的图片,我想让上面的图片居中。 相关代码(部分代码,尤其是单元,来自AMUSE框架): lim = [-5,5] | units.kpc bin
我是 python 和 matplotlib 的新手,在调整 2 plot 子图窗口的高度时遇到了问题。我正在尝试使子图垂直对齐,一个直接在另一个之上。底部的子图应该是顶部高度的一半。如果我尝试使用
我想创建一个没有中间空间的地 block 网格。 看起来像这样: 代码 1 import matplotlib.pyplot as plt from matplotlib.gridspec impor
当我使用 matplotlib 和 gridspec 在 python 中创建带有子图的图形时,遇到的问题是无法适当调整子图之间的空间宽度。 虽然 hspace 参数的变体在 0 到 1 的范围内已经
我试图在 6x4 网格中绘制 23 个图形,其中一个图形占其他图形宽度的两倍。我正在使用 gridspec,我当前的代码是: import numpy as np import matplotlib.
我尝试使用 gridspec 在一个图中垂直绘制两个图。上面的应该是下面的两倍高(即比例为 2:1,具有 3 个相等的垂直部分),并且它们必须共享 x 轴比例。我有下面的最小示例,它生成正确的三部分图
有a number of questions关于使用 matplotlib 创建“缩略图”图(即较大图的较小版本,其中缩略图图覆盖在原始图上)。 但是,我找不到使用 GridSpec 绘图来实现此目的
我想创建一个代表数据可视化仪表板的类。仪表板具有特定的预定义布局,我尝试使用 matplotlib.gridspec 来定义它。 仪表板的每个实例的布局都是固定的,但应填充不同的绘图。如何最好地初始化
使用 GridSpec ,我有一个规则的地 block 格。假设 3 x 3。所有绘图轴都关闭,因为我对绘图的形状感兴趣,而不是单个轴值。 我想做的是标记较大框的 x 轴和 y 轴。例如,在上面的 3
我的子图在图中的位置有点奇怪。顶部、底部和左侧有大量空间,我不需要,但右边距离右轴标签有点太近了。请参阅示例。 我生成的代码如下。请注意,我使用了 tight_layout 和 subplots_ad
我是一名优秀的程序员,十分优秀!