plotly express in python 在制作意大利面条图时重复色调
plotly express in python repeats hue when making spaghetti plot
我正在尝试使用以下代码段使用 pandas 数据框中的所有列制作意大利面条图:
import pandas as pd
import plotly.express as px
df_melt = df.melt('months', var_name='cols', value_name='vals')
fig = px.line(df_melt, x='months' , y='vals' , color='cols',title="Symptoms frequency over the years 2018-19", labels={"vals":"Frequency","cols":"Keywords","months":"Timeline"})
fig.update_layout(font = dict(size = 10))
csv 看起来像这样:
{'pathogen': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'flavivirus': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'swamp': {0: 5, 1: 6, 2: 9, 3: 19, 4: 39},
'virus': {0: 0, 1: 3, 2: 1, 3: 1, 4: 8},
'virus-bacteria': {0: 11, 1: 12, 2: 18, 3: 21, 4: 97},
'contagious': {0: 8, 1: 1, 2: 2, 3: 9, 4: 23},
'mosquito bite': {0: 1, 1: 1, 2: 6, 3: 3, 4: 7},
'agent': {0: 19, 1: 17, 2: 43, 3: 179, 4: 702},
'host': {0: 1, 1: 1, 2: 1, 3: 3, 4: 27},
'infected': {0: 0, 1: 1, 2: 0, 3: 1, 4: 4},
'bitten': {0: 0, 1: 1, 2: 0, 3: 2, 4: 12},
'bite': {0: 7, 1: 9, 2: 17, 3: 39, 4: 93},
'skin': {0: 34, 1: 43, 2: 38, 3: 154, 4: 269},
'sensitive': {0: 9, 1: 2, 2: 3, 3: 40, 4: 75},
'at risk': {0: 20, 1: 23, 2: 34, 3: 138, 4: 338},
'serotype': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'serotypes': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'protection': {0: 37, 1: 36, 2: 50, 3: 259, 4: 303},
'mucus membrane': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'spreaded': {0: 172, 1: 194, 2: 266, 3: 825, 4: 1424},
'vertebrate': {0: 0, 1: 0, 2: 0, 3: 0, 4: 1},
'human': {0: 707, 1: 676, 2: 961, 3: 2623, 4: 5270},
'mosquito': {0: 2, 1: 3, 2: 12, 3: 59, 4: 41},
'DEN-1': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den1': {0: 0, 1: 2, 2: 1, 3: 0, 4: 3},
'DEN-2': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den2': {0: 0, 1: 3, 2: 1, 3: 0, 4: 1},
'DEN-3': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den3': {0: 0, 1: 1, 2: 0, 3: 0, 4: 2},
'DEN-4': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den4': {0: 0, 1: 3, 2: 0, 3: 1, 4: 3},
'DEN': {0: 1, 1: 4, 2: 2, 3: 4, 4: 5},
'months': {0: 'January18', 1: 'February18', 2: 'March18', 3: 'April18', 4: 'May18'}}
我的情节是这样的:spaghetti plot
我正在使用 plotly 4.4.1
和 plotly-express 0.4.1
.
问题是关键字 repeat 的颜色,所以我很难从图中做出任何解释。有什么方法可以让我停止重复吗?此外,此处并未显示所有关键字,当我保存绘图时标签会被裁剪。我该如何补救?
谢谢!
默认的定性色阶只有10个项目,你可以输入:
print(len(px.colors.qualitative.Plotly))
10
要使用不同的比例,您可以使用 plotly express color_discrete_sequence
参数。例如,要使用 Dark24
方案(该方案有 24 种颜色),您可以 运行:
px.line(..., color_discrete_sequence = px.colors.qualitative.Dark24)
如果你传递一个列表,你也可以传递你自己的配色方案:
px.line(..., color_discrete_sequence = ['#FF0000', ...])
您也可以将新颜色附加到默认配色方案:
mycolorscheme = px.colors.qualitative.Plotly
mycolorscheme.append('#FF0000')
px.line(..., color_discrete_sequence = mycolorscheme)
您可以在以下链接中查看有关颜色的更多信息:
我正在尝试使用以下代码段使用 pandas 数据框中的所有列制作意大利面条图:
import pandas as pd
import plotly.express as px
df_melt = df.melt('months', var_name='cols', value_name='vals')
fig = px.line(df_melt, x='months' , y='vals' , color='cols',title="Symptoms frequency over the years 2018-19", labels={"vals":"Frequency","cols":"Keywords","months":"Timeline"})
fig.update_layout(font = dict(size = 10))
csv 看起来像这样:
{'pathogen': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'flavivirus': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'swamp': {0: 5, 1: 6, 2: 9, 3: 19, 4: 39},
'virus': {0: 0, 1: 3, 2: 1, 3: 1, 4: 8},
'virus-bacteria': {0: 11, 1: 12, 2: 18, 3: 21, 4: 97},
'contagious': {0: 8, 1: 1, 2: 2, 3: 9, 4: 23},
'mosquito bite': {0: 1, 1: 1, 2: 6, 3: 3, 4: 7},
'agent': {0: 19, 1: 17, 2: 43, 3: 179, 4: 702},
'host': {0: 1, 1: 1, 2: 1, 3: 3, 4: 27},
'infected': {0: 0, 1: 1, 2: 0, 3: 1, 4: 4},
'bitten': {0: 0, 1: 1, 2: 0, 3: 2, 4: 12},
'bite': {0: 7, 1: 9, 2: 17, 3: 39, 4: 93},
'skin': {0: 34, 1: 43, 2: 38, 3: 154, 4: 269},
'sensitive': {0: 9, 1: 2, 2: 3, 3: 40, 4: 75},
'at risk': {0: 20, 1: 23, 2: 34, 3: 138, 4: 338},
'serotype': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'serotypes': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'protection': {0: 37, 1: 36, 2: 50, 3: 259, 4: 303},
'mucus membrane': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'spreaded': {0: 172, 1: 194, 2: 266, 3: 825, 4: 1424},
'vertebrate': {0: 0, 1: 0, 2: 0, 3: 0, 4: 1},
'human': {0: 707, 1: 676, 2: 961, 3: 2623, 4: 5270},
'mosquito': {0: 2, 1: 3, 2: 12, 3: 59, 4: 41},
'DEN-1': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den1': {0: 0, 1: 2, 2: 1, 3: 0, 4: 3},
'DEN-2': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den2': {0: 0, 1: 3, 2: 1, 3: 0, 4: 1},
'DEN-3': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den3': {0: 0, 1: 1, 2: 0, 3: 0, 4: 2},
'DEN-4': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0},
'den4': {0: 0, 1: 3, 2: 0, 3: 1, 4: 3},
'DEN': {0: 1, 1: 4, 2: 2, 3: 4, 4: 5},
'months': {0: 'January18', 1: 'February18', 2: 'March18', 3: 'April18', 4: 'May18'}}
我的情节是这样的:spaghetti plot
我正在使用 plotly 4.4.1
和 plotly-express 0.4.1
.
问题是关键字 repeat 的颜色,所以我很难从图中做出任何解释。有什么方法可以让我停止重复吗?此外,此处并未显示所有关键字,当我保存绘图时标签会被裁剪。我该如何补救? 谢谢!
默认的定性色阶只有10个项目,你可以输入:
print(len(px.colors.qualitative.Plotly))
10
要使用不同的比例,您可以使用 plotly express color_discrete_sequence
参数。例如,要使用 Dark24
方案(该方案有 24 种颜色),您可以 运行:
px.line(..., color_discrete_sequence = px.colors.qualitative.Dark24)
如果你传递一个列表,你也可以传递你自己的配色方案:
px.line(..., color_discrete_sequence = ['#FF0000', ...])
您也可以将新颜色附加到默认配色方案:
mycolorscheme = px.colors.qualitative.Plotly
mycolorscheme.append('#FF0000')
px.line(..., color_discrete_sequence = mycolorscheme)
您可以在以下链接中查看有关颜色的更多信息: