我如何将一列的值放在海底点图中

问题描述 投票:0回答:1

我正在用来自df(['group', 'preds'])的两列绘制点图。我还有另一列ratio,我想将其用作每个点上方的标签,以便观看者可以看到食指与比例的对应关系。我没有在文档中找到任何说明如何执行此操作的内容。

请参见下面的示例。我只需要一条线或一些可以增加比率的标签。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

group = [1,2,3,4,5,6,7,8,9,10]
preds = [.57, .64, .66, .68, .70, .71, .72, .75, .77, .86]
ratio = [.06, .07, .1, .23, .56, .66, .77, .88, .89, 1.07]
df = pd.DataFrame(list(zip(group, preds, ratio)), columns = ['group', 'preds', 'ratio'])
df.head()
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use("fivethirtyeight")
title = 'Base Line Data only Lift Chart'

plt.rcParams['figure.figsize'] = [16,10]
plt.rcParams['figure.dpi'] = 150
#ax = plt.figure(facecolor='w', edgecolor='k')
ax = sns.pointplot(x ='group', y = 'preds', data = df)
ax = plt.title(title)
python matplotlib label seaborn
1个回答
0
投票

您可以使用ax.text。请注意,我的斧头指向的是ax=sns.pointplot(...),而不是代码中的ax=plt.title(...)。我还在ax.text()中加入了一些关键字参数供您自己调整和探索。

绘图代码

plt.style.use("fivethirtyeight")
title = 'Base Line Data only Lift Chart'

plt.rcParams['figure.figsize'] = [16,10]
plt.rcParams['figure.dpi'] = 150
#ax = plt.figure(facecolor='w', edgecolor='k')
ax = sns.pointplot(x ='group', y = 'preds', data = df)

for x,y,z in zip(group,preds,ratio):
#change f'{z:.2f}' to str(z) if you want something simpler
    ax.text(x-1,y+0.01,f'{z:.2f}',horizontalalignment='center',color='m',weight='light')

plt.title(title)

输出enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.