我有一个数据数组data1,包含从0到1000以上的值,我只想有一个直方图和一个KDE,包含从0到10的值,因此我写了:
sns.distplot(data1, kde=True, hist=True, hist_kws={"range": [0,10]}) plt.show()
然而,我得到的是所有值的直方图(一直到2000年)。
sigwle7e1#
您可以过滤数据,然后在过滤后的数据上调用displot:
displot
filtered = data1[(data1 >= 0) & (data1 < 10)] sns.distplot(filtered, kde=True, hist=True, hist_kws={"range": [0,10]}) plt.show()
假设data1是一个numpy数组。
data1
hrirmatl2#
您可以为sns返回的Axes对象设置范围。
sns
Axes
ax = sns.distplot(data1, kde=True, hist=True, hist_kws={"range": [0,10]}) ax.set_xlim(0, 10)
ppcbkaq53#
如果你想只计算[0,10]中的值的KDE和直方图,你可以使用参数kde_kws={"clip":(0,10)}, hist_kws={"range":(0,10)}:
kde_kws={"clip":(0,10)}, hist_kws={"range":(0,10)}
sns.distplot(data1, kde=True, hist=True, kde_kws={"clip":(0,10)}, hist_kws={"range":(0,10)}) plt.show()
u5rb5r594#
使用histplot的选项binrange。这在现代的seaborn中也是有效的(注意**distplot已经折旧)。
histplot
binrange
seaborn
distplot
binrange: pair of numbers or a pair of pairs Lowest and highest value for bin edges; can be used either with bins or binwidth. Defaults to data extremes.
2wnc66cl5#
可以,只需在声明绘图后将plt.xlim(x,x1)放在一行中,生成的绘图将只包含x和x1之间的x值。
5条答案
按热度按时间sigwle7e1#
您可以过滤数据,然后在过滤后的数据上调用
displot
:假设
data1
是一个numpy数组。hrirmatl2#
您可以为
sns
返回的Axes
对象设置范围。ppcbkaq53#
如果你想只计算[0,10]中的值的KDE和直方图,你可以使用参数
kde_kws={"clip":(0,10)}, hist_kws={"range":(0,10)}
:u5rb5r594#
使用
histplot
的选项binrange
。这在现代的
seaborn
中也是有效的(注意**distplot
已经折旧)。2wnc66cl5#
可以,只需在声明绘图后将plt.xlim(x,x1)放在一行中,生成的绘图将只包含x和x1之间的x值。