我在熊猫数据框中有以下数据集:
x = df_data.iloc[:,0].values
y = df_data.iloc[:,1].values
以下数据分别以x和y表示:
x = 30, 31, 32, 33, 34, 35, 36
y = 1000, 2000, 3000, 4000, 3000, 2000, 1000
y表示计数(每个x值存在的频率)
我现在想用密度分布线做一个条形图。我愿意使用seaborn或matplotlib,但找不到单独输入x和y数据以及获得条形图和密度图的方法
我试过这个:
x = [30,31,32,33,34,35,36]
y = [1000, 2000, 3000, 4000, 3000, 2000, 1000]
##
sns.distplot(x, hist=True, kde=True,
bins=int(150/150), color='darkblue',
hist_kws={'edgecolor':'black'},
kde_kws={'linewidth': 4})
plt.show()
但是没有得到我想要的
我希望有如下内容(仅用于我的数据)
(我从:https://towardsdatascience.com/histograms-and-density-plots-in-python-f6bda88f5ac0获得此图像)
首先,请注意
distplot
已在Seaborn 0.11中折旧。扩展版和改进版现在被称为histplot
(带有可选kde的直方图)、kdeplot
(仅用于kde)和displot
(创建子图)可选的
weights=
参数为每个x
值设置权重discrete=True
需要为每个x
值设置一个条。kde的cut
参数控制曲线在数据点外绘制的距离请注意,如果基础数据是连续的,则通过提供原始数据,可以得到更精确的图
要更改kde行的颜色,一个明显的想法是使用
line_kws={'color': 'red'}
,但这在当前的seaborn版本(0.11.1)中不起作用但是,可以分别绘制
histplot
和kdeplot
。为了有匹配的y轴,histplot
需要stat='density'
(默认为'count'
)另一种方法是在之后更改线条的颜色,它独立于所选的
stat=
工作以下是一个示例,说明如何将一个数据集的直方图与另一个数据集的kde曲线相结合:
相关问题 更多 >
编程相关推荐