将数据框列名列表传递给 Plotly Express Treemap
Passing a list of dataframe column names to Plotly Express Treemap
我正在尝试在 Plotly Express 中创建树状图。如果我手动输入列名,则会创建树状图。传递相同列名的列表会引发 ValueError。
基本上我有一个列名为 3,4,5,6,7,8,9,10 的数据框
因为这些列名称会因数据而异,所以我想将它们作为列表传递给 Plotly express。
按照以下方式手动输入它们,将有效
treemap_fig = px.treemap(df_split_folders, path=[px.Constant("Chart Title"), 3,4,5,6,7,8,9,10],values='count', color_discrete_sequence=px.colors.qualitative.Antique)
但不会将它们作为列表传递。例如
# create list of column names from dataframe
total_cols = df_split_folders.columns.values.tolist()
#pass as a list
treemap_fig = px.treemap(df_split_folders, path=[px.Constant("Chart Title"), 3,4,5,6,7,8,9,10],values='count', color_discrete_sequence=px.colors.qualitative.Antique)
我也尝试过将列名列表转换为字符串,但没有成功。
编辑:这是一个最小可重现的例子:
import pandas as pd
import plotly.express as px
# dictionary with list object in values
details = {
'url' : ['/category', '/category', '/product', '/product'],
'folder' : ['/games', '/playstation', '/cars', '/cycling'],
'type' : ['adventure', 'action', 'action', 'adventure'],
}
df = pd.DataFrame(details, index = ['a', 'b', 'c', 'd'])
df['count'] = 1
treemap_fig = px.treemap(df, path=[px.Constant("Discovered / Crawled Not Indexed"), 'url', 'folder', 'type'], values='count', color_discrete_sequence=px.colors.qualitative.Antique)
treemap_fig.show()
此代码按预期工作并生成树状图,但是 - 如果我尝试将列名作为变量传递,它不再引用数据框列名。例如
cols = 'url', 'folder', 'type'
treemap_fig = px.treemap(df, path=[px.Constant("Discovered / Crawled Not Indexed"), **cols**], values='count', color_discrete_sequence=px.colors.qualitative.Antique)
treemap_fig.show()
要扩展列变量,您可以使用星号来扩展它。 details.
请参考官方参考
cols = 'url', 'folder', 'type'
treemap_fig = px.treemap(df,
path=[px.Constant("Discovered / Crawled Not Indexed"), *cols],
values='count',
color_discrete_sequence=px.colors.qualitative.Antique)
treemap_fig.show()
我正在尝试在 Plotly Express 中创建树状图。如果我手动输入列名,则会创建树状图。传递相同列名的列表会引发 ValueError。
基本上我有一个列名为 3,4,5,6,7,8,9,10 的数据框
因为这些列名称会因数据而异,所以我想将它们作为列表传递给 Plotly express。
按照以下方式手动输入它们,将有效
treemap_fig = px.treemap(df_split_folders, path=[px.Constant("Chart Title"), 3,4,5,6,7,8,9,10],values='count', color_discrete_sequence=px.colors.qualitative.Antique)
但不会将它们作为列表传递。例如
# create list of column names from dataframe
total_cols = df_split_folders.columns.values.tolist()
#pass as a list
treemap_fig = px.treemap(df_split_folders, path=[px.Constant("Chart Title"), 3,4,5,6,7,8,9,10],values='count', color_discrete_sequence=px.colors.qualitative.Antique)
我也尝试过将列名列表转换为字符串,但没有成功。
编辑:这是一个最小可重现的例子:
import pandas as pd
import plotly.express as px
# dictionary with list object in values
details = {
'url' : ['/category', '/category', '/product', '/product'],
'folder' : ['/games', '/playstation', '/cars', '/cycling'],
'type' : ['adventure', 'action', 'action', 'adventure'],
}
df = pd.DataFrame(details, index = ['a', 'b', 'c', 'd'])
df['count'] = 1
treemap_fig = px.treemap(df, path=[px.Constant("Discovered / Crawled Not Indexed"), 'url', 'folder', 'type'], values='count', color_discrete_sequence=px.colors.qualitative.Antique)
treemap_fig.show()
此代码按预期工作并生成树状图,但是 - 如果我尝试将列名作为变量传递,它不再引用数据框列名。例如
cols = 'url', 'folder', 'type'
treemap_fig = px.treemap(df, path=[px.Constant("Discovered / Crawled Not Indexed"), **cols**], values='count', color_discrete_sequence=px.colors.qualitative.Antique)
treemap_fig.show()
要扩展列变量,您可以使用星号来扩展它。 details.
请参考官方参考cols = 'url', 'folder', 'type'
treemap_fig = px.treemap(df,
path=[px.Constant("Discovered / Crawled Not Indexed"), *cols],
values='count',
color_discrete_sequence=px.colors.qualitative.Antique)
treemap_fig.show()