Mathematica中绘图工具的CMYK颜色

时间:2013-06-25 14:25:33

标签: wolfram-mathematica cmyk

我在Mathematica 9.0中绘制图形并将所有颜色转换为CMYK。之后,我使用“绘图工具”面板添加了文本和其他信息。我希望这些东西也是CMYK颜色,但找不到改变它的方法。我现在正在使用演示版本来查看这是否适用于我们的出版物。

由于

[后来] 谢谢,这有帮助。我正在为我们的办公室制作一个“虚拟证明”模板,但是当我导出到像pdf这样的东西时,我的功能箭头似乎与我的功能不同。我想要一种手动控制箭头颜色的方法,但似乎找不到这样写的方式。我也不介意将箭头样式改为两行而不是实心形状。箭头是最后一行。

ClearAll["Global`*"];
Interpretation[{f = {  1/(x - 1) + 1, Sin[x], -x, x}, 
  points = {{3, 2}, {-5, -8}}, min = -10, max = 10, size = 0.5, 
  rmin = -10, rmax = 10, gridx = 1, gridy = 1, hlabel = "x", 
  vlabel = "y"}, 
 Panel[Grid[{{Style["Plot Characteristics", Bold], SpanFromLeft},
    {"Functions:", InputField[Dynamic[f]]},
    {"Points:", InputField[Dynamic[points]]},
    {"Domain Min:", InputField[Dynamic[min]]},
    {"Domain Max:", InputField[Dynamic[max]]},
    {"Range Min:", InputField[Dynamic[rmin]]},
    {"Range Max:", InputField[Dynamic[rmax]]},
    {"Grid Size (cm):", InputField[Dynamic[size]]},
    {"Gridline Space x:", InputField[Dynamic[gridx]]},
    {"Grdiline Space y:", InputField[Dynamic[gridy]]},
    {"Horizontal Label:", InputField[Dynamic[hlabel]]},
    {"Vertical Label:", InputField[Dynamic[vlabel]]}
    }]],
 Plot[f, {x, min - 0.58*gridx, max + 0.58*gridx},
   PlotRange -> {rmin - 1.01*gridy, rmax + 1.01 gridy} ,
   GridLines -> {Range[min, max, gridx], Range[rmin, rmax, gridy]},
   GridLinesStyle -> {{Dashed, CMYKColor[0, 0, 0, 1, 0.25], 
      AbsoluteThickness[0.5]}, {Dashed, CMYKColor[0, 0, 0, 1, 0.25], 
      AbsoluteThickness[0.5]}},
   Ticks -> {Range[min, max, gridx], Range[rmin, rmax, gridy]}, 
   TicksStyle -> 
   Directive[10, Opacity[0], FontOpacity -> 0.9999, 
     CMYKColor[0, 0, 0, 1], FontFamily -> "Helvetica"],
   ImageSize -> {(max + gridx - (min - gridx))*28.52*size + 37.2 + 
      6.4*StringLength[hlabel], (rmax + gridy - (rmin - gridy))*28.52*
       size + 49},
   AspectRatio -> Full,
   AxesLabel -> {Style[hlabel, Italic], Style[vlabel, Italic]},
   LabelStyle -> {{FontFamily -> "Helvetica", FontSize -> 14}},
   AxesStyle -> {CMYKColor[1, 1, 1, 1], AbsoluteThickness[0.5]},
   PlotStyle -> {{AbsoluteThickness[1], 
      CMYKColor[0, 0, 0, 1]}, {AbsoluteThickness[1], 
      CMYKColor[0, 0.83, 1, 0]}, {AbsoluteThickness[1], 
      CMYKColor[1, 0, 0, 0]}, {AbsoluteThickness[1], 
      CMYKColor[0.36, 1, 0, 0]}, {AbsoluteThickness[1], 
      CMYKColor[0.63, 0, 1, 0]}, {AbsoluteThickness[1], 
      CMYKColor[0, 0, 0, 1]}},
   Prolog -> {Arrowheads[{0.02, 0.01, {0, 0.03}}], 
     Arrow[{{max + gridx, 0}, {max + gridx + gridx/10, 0}}], 
     Arrow[{{min - gridx, 0}, {min - gridx - gridx/10, 0}}], 
     Arrow[{{0, rmax + gridy}, {0, rmax + gridy + gridy/10}}], 
     Arrow[{{0, rmin - gridy}, {0, rmin - gridy - gridy/10}}], 
     AbsolutePointSize[5], Point[points]},
   Epilog -> {Text[
      Style["Label", 12, FontColor -> CMYKColor[0, 0, 0, 1], 
       FontFamily -> "Helvetica"], {5, 5}]}
   ]
  /. Line[x__] :> Sequence[Arrowheads[{-.02, .02}], Arrow[x]]
 ]

2 个答案:

答案 0 :(得分:1)

如果它有帮助,你可以获得CMYK颜色的RGB等价物。

ColorConvert[ CMYKColor[0, 1, 1, 0] , "RGB"] /. RGBColor -> List

(*  {1., 0., 0.} *)

或者在适合的对话范围内:

255 ( ColorConvert[ CMYKColor[.1, .8, .3, .15] , "RGB"] /. RGBColor -> List) // Round

(* {195, 43, 152} *)

我觉得您需要手动将它们键入绘图工具对话框。

当然,您总是可以使用图形原型而不是GUI工具进行标记,然后您就可以完全控制。

编辑//刚搞砸了这个。我可以很好地将绘图工具对象的颜色与CMYK primatives 匹配,除了字体。通过字体对话框或绘图工具对话框可以明显设置字体颜色,但对我来说也没有任何意义。 我认为我们可以将GUI绘图工具标记为尚未准备好进行高质量的工作

答案 1 :(得分:1)

我认为我不会热衷于你的方法 - 首先,如果你再次生成图表,你不必重新做注释吗?然后,你手工做事,你可以更容易地自动化(如果你有很多这类工作要做......)。虽然通过 Mathematica 学习一切都需要一些时间。

导出时似乎保留了CMYK颜色:

p = Framed[
  Plot[
   Sin[x], 
   {x, 0, 2 Pi}, 
   PlotStyle -> CMYKColor[0, 1, 0, .15],
   PlotRangePadding -> 0,
   Prolog -> {CMYKColor[.1, .1, .3, .15],
     Rectangle[{-1, -1}, {2 Pi, 1}]},
   Epilog -> {Text[
      Style["Sine of x", 28,
       FontColor -> CMYKColor[.2, .5, 1, .15], 
       FontFamily -> "Optima Bold"],
      {4.5, .5}]}],
  Background -> CMYKColor[.3, .2, .0, .15],
  FrameStyle -> CMYKColor[.1, .2, .0, 0]
  ]

Export["p.eps", p]

plot

但是我已经有一段时间了,因为我不得不与CMYK合作,所以我可能不知道自己在做什么......:)