我正在使用Seaborn的FaceGrid绘制一些直方图,我认为自动箱子大小调整只使用每个类别(而不是每个子批次)的数据,这导致了一些奇怪的结果(请参见y=2
中的瘦绿色箱子):
g = sns.FacetGrid(df, row='y', hue='category', size=3, aspect=2, sharex='none')
_ = g.map(plt.hist, 'x', alpha=0.6)
有没有一种方法(使用海运,而不是回到matplotlib)使每个图的直方图箱大小相等?
我知道我可以手动指定所有的箱子宽度,但这会迫使所有的直方图都是相同的x范围(见笔记本)。
笔记本:https://gist.github.com/alexlouden/42b5983f5106ec92c092f8a2697847e6
您需要为plt定义一个包装函数。hist
它本身进行色调分组,类似于
%matplotlib inline
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
tips.loc[tips.time == "Lunch", "total_bill"] *= 2
def multihist(x, hue, n_bins=10, color=None, **kws):
bins = np.linspace(x.min(), x.max(), n_bins)
for _, x_i in x.groupby(hue):
plt.hist(x_i, bins, **kws)
g = sns.FacetGrid(tips, row="time", sharex=False)
g.map(multihist, "total_bill", "smoker", alpha=.5, edgecolor="w")
我有一只熊猫。DataFrame我想基于两列绘制一个图表:(int)、(int-或)。现在我有这样的东西: 这是我使用的代码: 这是两个子图。这很好,但是很难看出在特定的年龄范围内,在幸存的列中有和的记录量之间的差异。 所以我想要这样的东西: 在这个场景中,您可以看到这种差异。有什么方法可以在(因为在那里我可以轻松地操作)?如果可能的话,我不想使用香草
看起来很好用,但还没能在网上找到有用的东西。 我已经尝试了两个和
在Matplotlib中创建堆叠直方图时,我注意到箱宽缩小了。在这个简单的例子中: 我得到以下输出: 请注意,左侧的直方图在每个存储区之间都有行间距,即使左侧和右侧直方图都使用相同的存储区。 有没有办法纠正这种行为?我想在左边的直方图使用完整的箱子宽度,这样相邻的箱子共享一条边。
我有一个带有值的数组,我想创建它的直方图。我主要对低端号码感兴趣,想把300以上的每一个号码都收集在一个箱子里。此箱应与所有其他(等宽)箱具有相同的宽度。我该怎么做呢? 注:此问题与此问题相关:在Matplotlib直方图中定义仓位宽度/x轴比例 这就是我迄今为止所尝试的: 然后,我更改了其中包含xlim的行: 它看起来或多或少像我想要的,但是最后一个垃圾箱现在看不见了。我错过了哪一个技巧来可视化
我试图从下面的论文(http://dx.doi.org/10.1016/j.envsci.2011.08.004)中复制图表图1的概念: 它是一个直方图,其箱子宽度取决于的值,其高度取决于变量。图表中的精确值并不重要,而是要了解如何复制它。 以下代码为每个创建了一个具有两个特征的数据帧(and measure的宽度是减量,
$config = ['path' => './tests']; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHandle = $fileObject->getHandle(); $chart = new \Vtif