我有一个数据框:
import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
val = random.sample(range(0, 100), 100)
prob = []
for i in range(0,100):
x = random.uniform(0,1)
prob.append(x)
d = {'Value': val, 'Probability': prob}
df = pd.DataFrame(data=d)
我想画一个图表:
def barplot_groups(group_, var_names=['','']):
fig, ax = plt.subplots(figsize=(15,7))
sns.barplot(group_.index, group_.values, ax=ax)
max_val = group_.values.max()
for p in ax.patches:
_x = p.get_x() + 1/3*p.get_width()
_y = p.get_y() + p.get_height()
if _y >= 0: _y += + max_val/100
else: _y = _y - max_val/50
value = round(p.get_height(),2)
ax.text(_x, _y, value)
plt.xlabel(f'{var_names[0]}')
plt.ylabel(f'Average of {var_names[1]}')
plt.title(f'Relationship between {var_names[0]} and {var_names[1]}')
plt.show()
在此,我应用以下函数:
group_prob = df.groupby(pd.cut(df['Probability'], np.arange(0, 1.1, 0.1)))['Value'].mean()
group_prob = group_prob.fillna(0.0)
barplot_groups(group_prob, ['Probability','Value'])
但我也想在酒吧中间添加一些基于:
group_prob = df.groupby(pd.cut(df['Probability'], np.arange(0, 1.1, 0.1)))['Value'].count()
如果你知道一个很好的方法来增加价值在图表中建议。
暂无答案!
目前还没有任何答案,快来回答吧!