在ListPlot中指定颜色序列

5

我正在尝试着如何将Mathematica的配色方案应用于离散数据。例如,我有一个时间序列列表,格式如下:

s={{{1946,1},{1947,2},{1948,3}},{{1946,-2},{1947,-1.8}}}

等等还有一些其他的系列,长度各不相同。如果我使用ListPlot绘制/连接/覆盖这些系列,是否有一种方法可以指示Mathematica通过从ColorData(例如"Rainbow")返回的ColorFunction中均匀地选择颜色来为每个图表选择颜色?

如何结合指令使每个图表变粗呢?

ListPlot[s,Joined->True,PlotStyle->{Thick,???}]
1个回答

9
想象一下这是您的数据——一个由30个长度不同的列表组成的不整齐列表:
data = Table[.5 k + RandomReal[1, RandomInteger[{8, 14}]], {k, 30}];

这是您需要的吗?

ListPlot[data, Joined -> True, 
         PlotStyle -> Thread@{Thick, ColorData["Rainbow"] /@ Range[0, 1, 1/29]}]

enter image description here


我有点困惑,Flatten 不应该是 Thread 吗?为什么 Flatten 产生的形式可以工作?我本来以为会将第一行样式设置为 Thick,然后将其余部分设置为颜色。 - Mr.Wizard
@Mr.Wizard 您是正确的,Thread 更加简洁、更新。但我从经验中知道 Flatten 也可以用。 - Vitaliy Kaurov
好的。如果您有解释,我仍然想知道为什么{thick,color,color,...}有效。 - Mr.Wizard
@Mr.Wizard 这就是这个语法如何设置以解析为图形 - 看看InputForm。 - Vitaliy Kaurov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接