为箱线图创建连续标签
Create consecutive labels for boxplot
我想根据切割间隔自动设置箱线图的标签。数据箱是通过在数据框上应用 pd.cut()
创建的。 pd.cut
的列表是手动指定的(参见 cut
列表),但我希望根据切割列表自动设置直方图标签。
如何使用代码将 cut
列表转换为标签列表?
下面的代码给我一个除法:
['0-20', '20-40', '40-60', '60-80', '80-100']
但是我希望它是:
['0-20', '21-40', '41-60', '61-80', '81-100']
代码:
cut = [0,20,40,60,80,100]
for i, p in enumerate(zip(cut, cut[1:])):
label.append('{}-{}'.format(cut[i], cut[i + 1]))
print(label)
您只需执行以下操作:
cut = [0,20,40,60,80,100]
label = []
for i, p in enumerate(zip(cut, cut[1:])):
label.append('{}-{}'.format(p[0] + 1 if p[0] != 0 else p[0], p[1]))
它会给你:
label
['0-20', '21-40', '41-60', '61-80', '81-100']
p
将是 2 个值(cut[i]
和 cut[i+1]
)并且您希望将 1 添加到第一个位置,除非它是开头(这由以下条件处理上面的代码 ...1 if p[0] != 0 else p[0]
).
我想根据切割间隔自动设置箱线图的标签。数据箱是通过在数据框上应用 pd.cut()
创建的。 pd.cut
的列表是手动指定的(参见 cut
列表),但我希望根据切割列表自动设置直方图标签。
如何使用代码将 cut
列表转换为标签列表?
下面的代码给我一个除法:
['0-20', '20-40', '40-60', '60-80', '80-100']
但是我希望它是:
['0-20', '21-40', '41-60', '61-80', '81-100']
代码:
cut = [0,20,40,60,80,100]
for i, p in enumerate(zip(cut, cut[1:])):
label.append('{}-{}'.format(cut[i], cut[i + 1]))
print(label)
您只需执行以下操作:
cut = [0,20,40,60,80,100]
label = []
for i, p in enumerate(zip(cut, cut[1:])):
label.append('{}-{}'.format(p[0] + 1 if p[0] != 0 else p[0], p[1]))
它会给你:
label
['0-20', '21-40', '41-60', '61-80', '81-100']
p
将是 2 个值(cut[i]
和 cut[i+1]
)并且您希望将 1 添加到第一个位置,除非它是开头(这由以下条件处理上面的代码 ...1 if p[0] != 0 else p[0]
).