gpt4 book ai didi

python-3.x - 来自列表而不是数据框的 Seaborn 条形图

转载 作者:行者123 更新时间:2023-12-04 15:51:54 24 4
gpt4 key购买 nike

我正在尝试将我的情节转换为 Seaborn我有一个多条形图的问题。数据是一个列表列表,如下所示:

raw_data = [[47.66773437098896, 47.585408826566024, 45.426437828641106, 44.955787935926836], 
[47.700582993718115, 47.59796443553682, 45.38896827262796, 44.80916093973529],
[47.66563311651776, 47.476571906259835, 45.21460968763448, 44.78683755963528],
[47.248523637295705, 47.42573841363118, 45.52890109500238, 45.10243082784969],
[47.14532745960979, 47.46958795222966, 45.4804195003332, 44.97715435208194],
[46.61620129160194, 47.316775886868584, 45.053032014046366, 44.527497508033704]]

我的简单seaborn脚本如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

def plot_sns(raw_data):
data = np.array(raw_data)

x = np.arange(len(raw_data))
width = 0.2 # width of bar

sns.axes_style('white')
sns.set_style('white')

ax = sns.barplot(x, data[:,0])

这产生了以下情节:
enter image description here

我想并排添加更多条形图(每组 4 个条形)。在 Matplotlib 中,我通过绘制另一个向右间隔的条来做到这一点,但在 Seaborn 中它不起作用。我看到的所有示例都使用 Pandas 数据框。

最佳答案

seaborn.barplot还可以绘制字典,允许对数据进行分组。要对其进行正确分组,您需要添加 4 个类别,因为您希望并排放置 4 个条形图。您还需要相应地重新排列数据:

import seaborn as sn

raw_data = {
# cat: A B C D
'x': ['Group 1', 'Group 1', 'Group 1', 'Group 1',
'Group 2', 'Group 2', 'Group 2', 'Group 2',
'Group 3', 'Group 3', 'Group 3', 'Group 3',
'Group 4', 'Group 4', 'Group 4', 'Group 4',
'Group 5', 'Group 5', 'Group 5', 'Group 5',
'Group 6', 'Group 6', 'Group 6', 'Group 6'],
'y': [47.66773437098896, 47.585408826566024, 45.426437828641106, 44.955787935926836,
47.700582993718115, 47.59796443553682, 45.38896827262796, 44.80916093973529,
47.66563311651776, 47.476571906259835, 45.21460968763448, 44.78683755963528,
47.248523637295705, 47.42573841363118, 45.52890109500238, 45.10243082784969,
47.14532745960979, 47.46958795222966, 45.4804195003332, 44.97715435208194,
46.61620129160194, 47.316775886868584, 45.053032014046366, 44.527497508033704],
'category': ['A', 'B', 'C', 'D','A', 'B', 'C', 'D','A', 'B', 'C', 'D','A', 'B', 'C', 'D','A', 'B', 'C', 'D','A', 'B', 'C', 'D']
}

sb.barplot(x='x', y='y', hue='category', data=raw_data)
xcategory字段为每个值分配一个组和类别,以便 barplot可以对值进行分组。
enter image description here

关于python-3.x - 来自列表而不是数据框的 Seaborn 条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com