【问题标题】:Conditional coloring using graphics in Mathematica在 Mathematica 中使用图形进行条件着色
【发布时间】:2011-07-05 02:26:51
【问题描述】:

请考虑:

dalist = {{1, 1, 1}, {2, 2, 2}, {3, 3, 3}, {4, 4, 4}, {5, 5, 5}, 
          {1, 2, 1}, {2, 3, 1}, {3, 4, 1}, {4, 5, 1}, {5, 6, 1}}

我用下面的来绘制上面#2 & #3 是x & y 坐标

Graphics@MapThread[Point[{#2, #3}] &, Transpose@dalist]

  • #1 定时参考 I 想用颜色 分。

  • 在我的数据中,范围从 1 到 30。

  • #1 =1 应始终屈服于 一样的颜色。

编辑:建立以下解决方案

  • 如何手动设置颜色范围/渐变或使用现有的(“BlackBodySpectrum”)?

【问题讨论】:

    标签: graphics wolfram-mathematica


    【解决方案1】:

    试试:

    datlist = Flatten[Table[{i, j + i, j}, {i, 1, 20}, {j, 1, 20}], 1];
    colordata = 60; (* Try different palettes 1 .. 62 *)
    
    Graphics[(Sequence @@ 
         {Directive[ 
          ColorData[colordata][Mod[#[[1]], ColorData[colordata, "Range"][[2]]]]], 
         PointSize -> Large, Point[{#[[2]], #[[3]]}]} & /@ datlist), 
         Frame -> True]
    

    编辑

    使用BlackBodySpectrum

    datlist = Flatten[Table[{i, j + i, j}, {i, 1, 20}, {j, 1, 20}], 1];
    colordata = "BlackBodySpectrum";(*Try different palettes 1.. 62*)
    Graphics[(
      Sequence @@ {Directive[
           ColorData[
             colordata][#[[1]] ColorData[colordata, 
                "Range"][[2]]/(Length@datlist/
                Length@Select[datlist, #[[1]] == 1 &])]], 
          PointSize -> Large, Point[{#[[2]], #[[3]]}]} & /@ datlist), 
     Frame -> True]
    

    【讨论】:

      【解决方案2】:

      你可以使用ColorData:

      Graphics@MapThread[{ColorData[1][#1], Point[{#2, #3}]} &, 
        Transpose@dalist]
      

      【讨论】:

        【解决方案3】:

        不需要 MapThread

        Graphics[{PointSize -> 0.05, {ColorData[1][#1], Point[{#2, #3}]} & @@@dalist}]
        

        您可以使用Blend 滚动您自己的图像渐变:

        Graphics[{PointSize -> 0.05, 
                 {Blend[{Red, Yellow, Blue}, #1/5], Point[{#2, #3}]} & @@@ dalist}]
        

        请注意,您必须小心缩放数据范围,以便最大值生成 1,最小值生成 0(如果您想以最佳方式使用可用范围)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多