如何将标签添加到特定位置,并将值之和设置为p的大小

2024-04-25 22:11:12 发布

您现在位置:Python中文网/ 问答频道 /正文

熊猫数据帧包含但不限于以下值:

x      y       z    
Winter Night   2222
Spring Morning 3888
Summer Day     1111
Autumn Evening 2999
...

很抱歉,由于保密协议,我无法提供完整的数据集

z变量用于计算总和,并将其作为图形上点的大小

def Scatter(x, y, z, colour_data=None):
    f = plt.figure()
    ax.scatter(x, y, s=z)

What I already have

我想把它做成16个不同大小的点。基本上,我想计算两列的总和,并确定适当的点大小


Tags: 数据图形协议defsummerspringdaymorning
1条回答
网友
1楼 · 发布于 2024-04-25 22:11:12

@Sheldore提出了一个很好的观点,即您的示例中没有足够的代码可供使用,因此下面的内容可能不是您想要的

我将季节和时间名称转换为整数,因为散点图无法绘制x/y轴的字符串

import pandas as pd

df = pd.DataFrame(data={
    'x': ['Winter','Spring','Summer','Autumn'],
    'y': ['Night','Morning','Day','Evening'],
    'z': [2222,3888,1111,2999],
})

# convert 'x' and 'y' strings to int to enable scatter plot

season_map = {
    'Winter': 0,
    'Spring': 1,
    'Summer': 2,
    'Autumn': 3,
}

time_map = {
    'Night': 0,
    'Morning': 1,
    'Day': 2,
    'Evening': 3,
}

df.loc[:,'x_int'] = df.x.map(season_map)
df.loc[:,'y_int'] = df.y.map(time_map)

ax = df.groupby(['x_int','y_int']).z.sum().reset_index()\
    .plot.scatter(x='x_int', y='y_int', s=df['z'])

ax.set_xlabel('X')
ax.set_ylabel('Y')

enter image description here

相关问题 更多 >