- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎使用 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", %]
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 *)
关于wolfram-mathematica - 为出版物导出图形 : how to achieve consistent line thicknesses in plot elements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931479/
当前问题陈述的输入是 - 输入.txt #START_OF_TEST_CASES #DATA key1:VA1 key2:VA2 key3:VA3 key4:VA4 key5:VA5 #DEND #E
编辑:添加了 PDO 调用。 这是实际的错误: Notice: Object of class PDOStatement could not be converted to int in Unknow
“git diff --stat”和“git log --stat”显示如下输出: $ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56
我有一个具有以下格式的输入文件:安大略省:布兰普顿:北纬 43° 41':西经 79° 45'安大略省:多伦多:北纬 43° 39':西经 79° 23'魁北克省:蒙特利尔:北纬 45° 30':西经
空白行仅包含\n或\r\n或\r。 tempfile = open(file,"r") for id,line in enumerate(tempfile): if(line != "\n"
我尝试使用 BABYLON.js 开发棋盘游戏我有一个板子和一个 ArcRotateCamera。 我的灯是 HemisphericLight 当我在板上画线时,我希望这些线具有相同的外观。现在,当我
我尝试使用 BABYLON.js 开发棋盘游戏我有一个板子和一个 ArcRotateCamera。 我的灯是 HemisphericLight 当我在板上画线时,我希望这些线具有相同的外观。现在,当我
有一个while read循环: while read line; do grep "^$line" file1 done < target 我应该使用 "^$line" 来获得正确答案。我想
我有一个我无法解决的 numpy 问题。我有填充 0 和 1 的 3D 数组 (x,y,z)。例如,z 轴上的一个切片: array([[1, 0, 1, 0, 1, 1, 0, 0],
作为临时方法,我使用 .txt 文件来存储程序的某些变量。写入与 fs.appendFile 完美配合,但考虑到它的大小,使用 fs.readFile 读取不合适 - 我想得到某一行 来自文件,以及
我试图找到一种通过R studio进行调试的方法,但是我发现的所有解决方案都无法真正起作用。 1.)CTRL + enter:有效,但不会通过循环的每次迭代,而只能执行一次。 2.)添加“browse
在我的应用程序中,我的 EditText 左侧有行号 - 到目前为止一切都很好,行号与 EditText 的行完全对齐。 问题是,如果用户更改 EditText 的文本大小,则行号无法正确对齐。所以我
通过使用 + 的参数调用它,我可以使 vim 将光标定位在文件的最后一行。 : vi + myfile # "+" = go to last line of file 我怎样才能做到
我已经在文件中写入了这样的数据(某种) {:a 25 :b 28} {:a 2 :b 50} ... 我想要这些 map 的惰性序列。 大约有 4000 万行。我也可以写 10000 的 block
我在文本区域中发现了一个奇怪的错误(?)... 比如说,有一个 使用多行文本(用户粘贴的文本或预设文本无关紧要,两者都经过测试)。 我想从 中获取文本并替换 \n与其他东西......结果是,.re
我需要一个新行,这样我就可以在 PFD 中看到一个格式,我尝试添加一个页面宽度但它没有用,我用另一个东西/n 也没有用。这是我的代码。我可以手动添加格式,因为我需要显示从数据库中获取的信息,并且我在一
我正在尝试编写一个 Java 程序,它将大量 GPS 坐标捕捉到线形文件(道路网络),并且不仅返回新坐标,还返回捕捉到的线段的唯一标识符。该标识符是否是 FID、其他语言中使用的“索引”(即,其中 1
你好,我正在努力处理 JavaScript/NodeJS 中的数组。 基本上,这是我的代码: let arr = new Array(); arr = { "Username" : var1,
我正在学习 matplotlib 的基本教程,我正在处理的示例代码是: import numpy as np import matplotlib.pylab as plt x=[1,2,3,4] y=
所以,假设我有一个包含 20 行的文本文件,每行都有不同的文本。我希望能够有一个包含第一行的字符串,但是当我执行 NextLine(); 时我希望它成为下一行。我试过了,但它似乎不起作用: strin
我是一名优秀的程序员,十分优秀!