您好我想绘制一个直方图,其中显示直方图顶部的箱线图,显示Q1,Q2和Q3以及异常值。示例电话如下。 (我使用的是Python和Pandas)
我已经使用matplotlib.pyplot
检查了几个例子,但几乎没有一个很好的例子。我还希望直方图曲线如下图所示。
我也试过了seaborn
,它为我提供了直方图的形状线,但没有找到一种方法与它上面的boxpot结合。
任何人都可以通过matplotlib.pyplot
或使用pyplot
答案 0 :(得分:13)
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks")
x = np.random.randn(100)
f, (ax_box, ax_hist) = plt.subplots(2, sharex=True,
gridspec_kw={"height_ratios": (.15, .85)})
sns.boxplot(x, ax=ax_box)
sns.distplot(x, ax=ax_hist)
ax_box.set(yticks=[])
sns.despine(ax=ax_hist)
sns.despine(ax=ax_box, left=True)
答案 1 :(得分:0)
扩展了@mwaskom的答案,我做了一些适应性强的功能。
import seaborn as sns
def histogram_boxplot(data, xlabel = None, title = None, font_scale=2, figsize=(9,8), bins = None):
""" Boxplot and histogram combined
data: 1-d data array
xlabel: xlabel
title: title
font_scale: the scale of the font (default 2)
figsize: size of fig (default (9,8))
bins: number of bins (default None / auto)
example use: histogram_boxplot(np.random.rand(100), bins = 20, title="Fancy plot")
"""
sns.set(font_scale=font_scale)
f2, (ax_box2, ax_hist2) = plt.subplots(2, sharex=True, gridspec_kw={"height_ratios": (.15, .85)}, figsize=figsize)
sns.boxplot(data, ax=ax_box2)
sns.distplot(data, ax=ax_hist2, bins=bins) if bins else sns.distplot(data, ax=ax_hist2)
if xlabel: ax_hist2.set(xlabel=xlabel)
if title: ax_box2.set(title=title)
plt.show()
histogram_boxplot(np.random.randn(100), bins = 20, title="Fancy plot", xlabel="Some values")
答案 2 :(得分:-1)
<q-input
filled
:value="text"
:label="label"
lazy-rules
style="width: 250px"
:rules="[(val) => (val && val.length > 0) || 'Required']"
@input="$emit('update:text', $event)"
/>