首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在制作意大利面时,用python巧妙地重复色调

在制作意大利面时,用python巧妙地重复色调
EN

Stack Overflow用户
提问于 2020-07-15 20:39:17
回答 1查看 646关注 0票数 2

我试图使用熊猫的所有列制作一个意大利面图,使用下面的代码片段:

代码语言:javascript
复制
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看起来是这样的:

代码语言:javascript
复制
{'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'}}

我的情节是这样的:意大利面图

我正在使用plotly 4.4.1plotly-express 0.4.1

问题是关键字重复的颜色,所以我很难从图表中做出任何解释。有什么办法让我停止重复吗?此外,不是所有的关键字都显示在这里,标签被裁剪时,我保存的情节。我该怎么补救呢?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-16 12:50:12

默认的定性色阶只有10项,如果键入:

代码语言:javascript
复制
print(len(px.colors.qualitative.Plotly))

10

要使用不同的比例,可以使用巧妙地表示color_discrete_sequence参数。例如,要使用Dark24方案(此方案有24种颜色),可以运行:

代码语言:javascript
复制
px.line(..., color_discrete_sequence = px.colors.qualitative.Dark24)

如果您传递一个列表,也可以传递您自己的配色方案:

代码语言:javascript
复制
px.line(..., color_discrete_sequence = ['#FF0000', ...])

还可以将新颜色附加到默认配色方案中:

代码语言:javascript
复制
mycolorscheme = px.colors.qualitative.Plotly
mycolorscheme.append('#FF0000')
px.line(..., color_discrete_sequence = mycolorscheme)

您可以在以下链接中看到有关颜色的更多信息:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62923412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档