gpt4 book ai didi

wolfram-mathematica - 为出版物导出图形 : how to achieve consistent line thicknesses in plot elements?

转载 作者:行者123 更新时间:2023-12-03 14:00:58 27 4
gpt4 key购买 nike

似乎使用 mma 创建具有出版质量的图形是一种可以追溯到几十年前的黑色艺术。尽管近年来情况有了很大改善,但在导出到文件时仍然很难获得一致的结果。最终结果看起来有点依赖格式(根据我的经验,EPS 效果最好)。

很多时候,帧和刻度线中的线条最终在 EPS 文件中过于模糊,当尝试执行类似 FrameStyle->AbsoluteThickness[2] 的操作时,很容易得到太粗的线条。因此,我目前的方法涉及采用五个参数——三个线条粗细(在 FrameStyle、AxesStyle 和 PlotStyle 中)、ImageSize 和 BaseStyle 中的 FontSize——并随机调整它们直到导出的绘图看起来可以接受。这有点令人不满意且耗时。

有没有更好的方法和/或标准的处方来实现平衡、美观的情节?

编辑:这是一个例子。在屏幕上看起来不错(见屏幕截图),但将其导出到 EPS 中,您可能会看到两件事:(a) EPS 字体嵌入存在错误:对我来说,除非我删除,否则图中的 epsilon 无法正确嵌入FontWeight->Normal指示。 (b) 框架/刻度线是浅灰色和 1 像素厚。如果我想缩小这个数字(例如,把它作为插图放置),它会破坏质量。但是,使用 AbsoluteThickness[2]看起来很糟糕——所以我必须增加 ImageSize .但是字体太小和/或情节中的线条看起来太细等等。

With[{exSubscript = "\[UpTee]", epsFontSize = 24, 
xcoords = {0.63, 2.2}}, testInset = Style[Inset[Cell[TextData[Cell[
BoxData[FormBox[SubscriptBox["\[Epsilon]", exSubscript],
TraditionalForm]]]]], xcoords, {Left, Baseline}],
FontWeight -> Normal, FontSize -> epsFontSize];
];
Show[Plot[10 x^2, {x, 0, 1}, PlotStyle -> Thick, Frame -> True,
PlotRange -> {-2, 8}, Epilog -> {testInset}], Axes -> {True, True},
AxesOrigin -> {0, 0}, AxesStyle -> Dashed,
FrameLabel -> {"\[Lambda] [\[Mu]m]", "Re{\[Epsilon]}"},
BaseStyle -> {FontSize -> 22, FontWeight -> Plain,
FontFamily -> Helvetica}, ImageSize -> 500]
Export["test.eps", %]

Sample plot

编辑:接受 Szabolcs 的回答,但应该给予 Mr.Wizard 指出 FontFamily -> Helvetica 的功劳对比 FontFamily -> "Helvetica"行为(这似乎是一个错误)。如果没有引号,由于字体搞砸了,PDF 导出就无法启动。

最佳答案

屏幕与打印查看

很难比较屏幕上的线条粗细,尤其是当显示的粗细接近 1 像素时。我发现最好以最终出版物尺寸打印图形,并以这种方式检查它们的质量。

使用绝对测量

我遇到的大多数问题都源于 Mathematica 使用绝对和相对(相对于绘图大小)测量。对于将出现在打印中的图形,最简单的方法是使用不随绘图缩放的绝对大小,特别是对于字体大小和线条粗细。通过这种方式,您可以很好地了解打印结果的外观(并且与图形大小无关)。您提供给 Mathematica 的数字是打印机的点数。

导出

最后,我发现导出到 EPS 不如导出到 PDF 可靠(例如,字体可能没有嵌入,正如您所提到的),并且 Mathematica 在导出到 EPS 时无法保留所有功能(例如不透明度!)。对于 2D 绘图,PDF 通常是一个不错的选择。但是,在导出 PDF 并在 Export 中指定 ImageSize 时存在错误。我使用的解决方法是

cm = 72/2.54 (* centimetres *)
Export["figure.pdf", Show[figure, ImageSize -> 7 cm]] (* 7 cm wide figure *)

您可以将结果包含在论文中而无需任何缩放,并且您将在所有图形中具有一致的字体大小和线条粗细。

总之,这或多或少对我有用:
  • 对需要在打印中的数字之间保持一致的事物使用绝对测量值
  • 以预期的最终大小导出为 PDF,并且在包含结果之前不要重新缩放结果(例如,不要在 LaTeX 中指定宽度)
  • 关于wolfram-mathematica - 为出版物导出图形 : how to achieve consistent line thicknesses in plot elements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931479/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com