可以在mathematica中对PointSize [],Thickness []进行相对大小的更改吗?

时间:2011-03-02 22:20:27

标签: wolfram-mathematica

来自this question regarding line thickness and point size setting [例如] PointSize[Large}PointSize[0.5]),我想知道以相对方式更改PointSize[]Thickness[]等是否可行?

即。为什么PointSize[Larger]不起作用?或者有可能以某种方式查询现有的pointsize并且可能做类似PointSize[1.25*GetPointSize[]]的事情(如果存在类似“GetPointSize []”的东西,我无法弄清楚这一点,既不快速浏览文档,也不从快速逆向工程看看PointSize [x])

3 个答案:

答案 0 :(得分:4)

AbsoluteOptions[]揭示了Mathematica追踪的那些选项 例如,尝试AbsoluteOptions[Graphics[{Point[{0, 0}]}]]。 不幸的是,PointSize不属于跟踪选项。

那么,为什么不简单地使用变量来存储要使用的值?

ps = 0.01; Graphics[{PointSize[ps], 
  Table[Point[{RandomReal[], RandomReal[]}], {i, 100}]}]

enter image description here

则...

Graphics[{PointSize[ps*2], 
  Table[Point[{RandomReal[], RandomReal[]}], {i, 100}]}]

I'd post an image but I don't have 10 points yet!

答案 1 :(得分:4)

您可以使用PointSize的Style选项形式在值中继承:

Graphics[{Style[{Point[{0, 0}], 
Style[{Point[{.2, 0}], 
  Style[{Point[{.4, 0}], 
    Style[{Point[{.6, 0}], 
      Style[{Point[{.8, 0}]}, PointSize -> .9 Inherited]}, 
     PointSize -> .9 Inherited]}, PointSize -> .9 Inherited]}, 
 PointSize -> .9 Inherited]}, PointSize -> .1]}, PlotRange -> 1]

enter image description here

答案 2 :(得分:2)

由于缺乏积分,我不能对Belisarius的“指令”评论发表评论,所以我在这里说:

Ragfield的代码有效,但所有PointSize指令都标记为红色。格式化为指令它仍然有效,也没有标记为错误:

Graphics[
 {
 Style[
  {
   Point[{0, 0}],
   Style[
    {
     Point[{.2, 0}],
     Style[
      {
       Point[{.4, 0}],
       Style[
        {
         Point[{.6, 0}],
         Style[
          {
           Point[{.8, 0}]
          },
          PointSize[.9 Inherited]
         ]
        },
        PointSize[.9 Inherited]
       ]
      },
      PointSize[.9 Inherited]
     ]
    },
    PointSize[.9 Inherited]
   ]
  },
  PointSize[.1]
 ]
},
PlotRange -> 1
]

我喜欢像这样的深层嵌套结构的一些格式化。任何人都知道如何在Stackoverflow中粘贴格式化的Mma代码,而不必在事后进行手动格式化?

很高兴听到Inherited BTW。从v6开始显然是新的,但它在我的雷达下飞行。