我正在绘制一张地图,上面显示河段的得分结果。分数为1到7之间的整数。
现在我想做一个图例和颜色编码我的结果。然而,我不想使用太多的颜色阴影,因为人眼/大脑并不能真正区分超过+/- 5的阴影。
因此,我的问题是:我如何将我的7(非连续的)得分结果划分为5类为我的传奇?
我想到了以下几种选择:
legend 1:
legend 2:
我对第一个传说的看法是,我会在视觉上欺骗我的听众,让他们认为极端价值观比实际更为普遍。我对第二个图例的看法是,我的结果值不是连续的,所以在现实中,第二个图例如下所示:
因此,我的数据将在视觉上扭曲和欺骗我的观众。
处理这种情况的正确方法是什么?或类似的情况(例如,9或11或13的结果值)?
谢谢!
发布于 2019-06-11 01:39:06
你不必使用相同颜色的阴影。如果它们之间有足够的对比,你可以保留7种颜色。
"Gradient"和"Indexed"两种颜色方案可用于选择7种颜色。
一些例子包括。
BarLegend[{#, {0, 7}}, Range@7,
LegendLabel -> #,
LegendLayout -> "Row"] & /@
{"BrightBands", "DarkBands", "Rainbow", "LightTemperatureMap", "TemperatureMap", "ThermometerColors"} //
Multicolumn[#, 3] &
BarLegend[{#, {0, 7}}, Range@7,
LegendLabel -> Last@ColorData[#, "AlternateNames"] <> " (" <> ToString@# <> ")",
LegendLayout -> "Row"] & /@
{96, 109, 110, 111} //
Multicolumn[#, 2] &
需要设置ColorFunctionScaling和ColorFunction选项以使用该方案。
BarChart[Range@7,
ColorFunctionScaling -> False,
ColorFunction -> ColorData[{"TemperatureMap", {0, 7}}]
]
对于大量的离散值,可以在不限制轮廓数的情况下使用"Gradient"颜色方案。
例如
Plot[x, {x, 0, 41},
ColorFunctionScaling -> False,
ColorFunction -> ColorData[{#, {0, 41}}],
PlotLabel -> #,
Filling -> Axis,
PlotLegends -> Automatic,
ImageSize -> Medium
] & /@ {"TemperatureMap", "ThermometerColors"} //
Column
希望这能有所帮助。
https://datascience.stackexchange.com/questions/53542
复制相似问题