似乎用mma创建出版品质的图形是一种可以追溯到几十年前的黑色艺术.虽然近年来情况有了很大改善,但在导出到文件时仍难以获得一致的结果.最终结果看起来似乎有些依赖于格式(根据我的经验,EPS效果最好).
通常情况下,帧和刻度线中的线条在EPS文件中最终过于模糊,并且在尝试执行类似操作时FrameStyle->AbsoluteThickness[2],很容易得到太粗的线条.因此,我目前的方法涉及在BaseStyle中采用五个参数 - 三个线条粗细(在FrameStyle,AxesStyle和PlotStyle中),ImageSize和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 -> …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用LevelScheme,并且在使直方图在图中正确拟合方面存在问题.最小的非工作示例:
<<"LevelScheme`"
Figure[{FigurePanel[{{0, 1}, {0, 1}},
LabB -> textit["x"], BufferB -> 2.5,
LabL -> textit["p(x)"], BufferL -> 2.5,
FrameTicks -> {LinTicks[-4, 4], LinTicks[0, 1]},
PlotRange -> {{-3, 3}, {0, 0.5}}],
RawGraphics[
Histogram[RandomReal[NormalDistribution[], 1000], Automatic,
"ProbabilityDensity"]]},
Frame -> False, PlotRange -> {{-0.075, 1.1}, {-0.1, 1.03}}]
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样

它看起来应该是这样的

基本上,Histogram图形对象不服从FigurePanel's PlotRange,而是服从主要Figure的PlotRange.当Histogram被一个Plot或类似的命令替换时,不会发生此行为.所以以下产生了一个干净的情节
Figure[{FigurePanel[{{0, 1}, {0, 1}},
LabB -> textit["x"], BufferB -> 2.5,
LabL -> textit["p(x)"], BufferL -> 2.5,
FrameTicks …Run Code Online (Sandbox Code Playgroud)