根据“计数”列绘制直方图连续颜色?
Posted
技术标签:
【中文标题】根据“计数”列绘制直方图连续颜色?【英文标题】:Plotly histogram continuous colors based on "count of" column? 【发布时间】:2022-01-10 16:21:21 【问题描述】:我创建了一个直方图,显示每十年超过 35° 摄氏度的天数(德语中的“Jahrzehnt”)。我想根据热天的数量(这里是“温度,最大值”列)给它上色,但是正如你在图片中看到的那样,最热的十年(2010 年)虽然我希望它变暗但颜色变暗了红色。
我的代码是
fig = px.histogram(grouper, x='Jahrzehnt', y='Temperatur, Maximum', color='Temperatur, Maximum', \
color_discrete_sequence=px.colors.sequential.Reds,
title='Tage über 35° Celsius ("Wüstentage")',
hover_data=dict(Jahrzehnt=False)
)
fig.update_layout(showlegend=False)
fig.update_yaxes(title='Anzahl')
如何更改 color_discrete_sequence 以使其与最低值和最高值与淡红色到饱和红色相匹配?
感谢您的任何提示。
【问题讨论】:
【参考方案1】:谢谢,我通过使用条形图而不是直方图找到了另一个答案,它允许使用连续色标按预期进行着色,如您的图中 Rob:
def wueste(df):
tag = df[df['Temperatur, Maximum'] >= 35]
grouper = tag.groupby(['Jahrzehnt'])['Temperatur, Maximum'].count()\
.to_frame()\
.reset_index()\
grouper = grouper[grouper['Temperatur, Maximum'] !=0]
fig = px.bar(grouper, x='Jahrzehnt', y='Temperatur, Maximum', color='Temperatur, Maximum', \
color_continuous_scale='reds',
title='Tage über 35° Celsius ("Wüstentage")',
hover_data=dict(Jahrzehnt=False)
)
fig.update_layout(showlegend=False)
fig.update_yaxes(title='Anzahl')
return fig
【讨论】:
【参考方案2】: 使用https://plotly.com/python-api-reference/generated/plotly.express.colors.htmlsample_colorscale()
,您可以从连续映射构建离散序列
使用了 列表理解,并将 color 更改为 x 轴而不是 y 轴列
完整代码如下
import pandas as pd
import numpy as np
import plotly.express as px
grouper = pd.DataFrame(
"Jahrzehnt": range(1870, 2011, 10),
"Temperatur, Maximum": np.random.randint(2, 40, 15),
)
grouper["Jahrzehnt"] = grouper["Jahrzehnt"].astype(str) + "er"
fig = px.histogram(
grouper,
x="Jahrzehnt",
y="Temperatur, Maximum",
color="Jahrzehnt",
color_discrete_sequence=[
px.colors.sample_colorscale("reds", v)[0]
for v in (
grouper["Temperatur, Maximum"] / grouper["Temperatur, Maximum"].max()
).tolist()
],
title='Tage über 35° Celsius ("Wüstentage")',
hover_data=dict(Jahrzehnt=False),
)
fig.update_layout(showlegend=False)
fig.update_yaxes(title="Anzahl")
【讨论】:
以上是关于根据“计数”列绘制直方图连续颜色?的主要内容,如果未能解决你的问题,请参考以下文章