Seaborn,条形图中的总时间如何?
Seaborn, how sum time in barplot?
pandas 输出:
name type value
0 Town_1 serv_time 8 days 07:14:44
1 Town_2 serv_time 0 days 16:46:35
2 Town_3 serv_time 0 days 22:39:27
3 Town_4 serv_time 0 days 02:36:56
4 Town_5 serv_time 0 days 11:17:45
[2022-04-01 15:18:22][ERROR] - Neither the `x` nor `y` variable appears to be numeric.
以及 python:
Plot(
type='bar',
data=new_data,
x='value',
hue='type',
y='name',
style='whitegrid',
)
def __create_bar(self):
sns.set_palette('Set2')
sns.despine()
plot = sns.barplot(ax=self.ax, x=self.x, y=self.y, hue=self.hue, data=self.data)
self.__set_legends()
if self.show:
return plt.show()
return self.__save(plot)
我正在尝试在 seaborn 中绘制条形图,但出现数字错误。如何在 barplot seaborn 中使用求和时间值?
要在 seaborn
中做一个 bar plot
需要足够的数据。
问题中没有足够的数据让 seaborn 执行此操作。
特别是错误消息指出 x
或 y
需要是数字 !
Neither the `x` nor `y` variable appears to be numeric.
一个可行的例子:
import pandas as pd
import seaborn as sns
sns.set_theme(style="whitegrid")
d = {'name':['town_1', 'town_2', 'town_3', 'town_4'],
'value A':[8, 0, 0.5, 1],
'value B':[2, 4, 6, 8]}
df = pd.DataFrame(d)
ax = sns.barplot(x='name', y='value A',data=df)
结果:
name value A value B
0 town_1 8.0 2
1 town_2 0.0 4
2 town_3 0.5 6
3 town_4 1.0 8
您需要将值系列转换为数字数据类型才能绘制它。
例如,假设该值具有 timedelta 数据类型。您可以在数据框中创建另一列。
new_data['value_seconds'] = new_data.value.dt.total_seconds()
Plot(
type='bar',
data=new_data,
x='value_seconds',
hue='type',
y='name',
style='whitegrid',
)
pandas 输出:
name type value
0 Town_1 serv_time 8 days 07:14:44
1 Town_2 serv_time 0 days 16:46:35
2 Town_3 serv_time 0 days 22:39:27
3 Town_4 serv_time 0 days 02:36:56
4 Town_5 serv_time 0 days 11:17:45
[2022-04-01 15:18:22][ERROR] - Neither the `x` nor `y` variable appears to be numeric.
以及 python:
Plot(
type='bar',
data=new_data,
x='value',
hue='type',
y='name',
style='whitegrid',
)
def __create_bar(self):
sns.set_palette('Set2')
sns.despine()
plot = sns.barplot(ax=self.ax, x=self.x, y=self.y, hue=self.hue, data=self.data)
self.__set_legends()
if self.show:
return plt.show()
return self.__save(plot)
我正在尝试在 seaborn 中绘制条形图,但出现数字错误。如何在 barplot seaborn 中使用求和时间值?
要在 seaborn
中做一个 bar plot
需要足够的数据。
问题中没有足够的数据让 seaborn 执行此操作。
特别是错误消息指出 x
或 y
需要是数字 !
Neither the `x` nor `y` variable appears to be numeric.
一个可行的例子:
import pandas as pd
import seaborn as sns
sns.set_theme(style="whitegrid")
d = {'name':['town_1', 'town_2', 'town_3', 'town_4'],
'value A':[8, 0, 0.5, 1],
'value B':[2, 4, 6, 8]}
df = pd.DataFrame(d)
ax = sns.barplot(x='name', y='value A',data=df)
结果:
name value A value B
0 town_1 8.0 2
1 town_2 0.0 4
2 town_3 0.5 6
3 town_4 1.0 8
您需要将值系列转换为数字数据类型才能绘制它。
例如,假设该值具有 timedelta 数据类型。您可以在数据框中创建另一列。
new_data['value_seconds'] = new_data.value.dt.total_seconds()
Plot(
type='bar',
data=new_data,
x='value_seconds',
hue='type',
y='name',
style='whitegrid',
)