Я демонстрировал свои новые модные форматы графиков коллегам, но мы обнаружили, что графика на основе BarChart
имеет зубчатый текст при экспорте в EMF, WMF, PDF и т. Д. На основе линейных графиков на ListLinePlot
, DateListPlot
и т. д. такой проблемы нет.
Если не считать Rasterize
, то есть каждую Export
функцию автоматически (она предназначена для приложения для конечных пользователей, поэтому они сами не должны возиться с ним), есть ли обходной путь? Это удивительно, потому что документация гласит:
Поскольку EMF поддерживает векторную графику, шрифты не растеризуются при экспорте в EMF.
РЕДАКТИРОВАТЬ Если это актуально, используется шрифт Arial. Это должно дать вам что-то очень близкое к графику, за исключением тикгрид-бизнеса, который включает в себя больше пользовательских функций, чем хотелось бы на самом деле пробираться.
SetOptions[BarChart,Background->None, BaseStyle -> {20, FontFamily -> Rfont},
Frame -> True, FrameTicksStyle -> {{Directive[20, 20], 20}, {20, 20}},
FrameStyle ->
Directive[AbsoluteThickness[0.9], FontFamily -> Rfont, Black],
AspectRatio -> 14./19., PlotRangePadding -> None, Ticks -> None,
ChartBaseStyle -> EdgeForm[None], GridLinesStyle->Directive[GrayLevel[0.7],
AbsoluteThickness[0.9]], GridLines -> {None, Automatic},
ImageSize -> 672, ImageMargins -> {{0, 0}, {0, 3}},
ImagePadding -> {{66, 66}, {All, 1}}
]
SetOptions[ListPlot,Background->None,BaseStyle -> {20, FontFamily -> Rfont,
AbsolutePointSize[6]}, Frame -> True,
FrameStyle -> Directive[AbsoluteThickness[0.9], FontFamily -> "Arial", Black],
FrameTicksStyle -> {{Directive[20, 20], 20}, {20, 20}},
AspectRatio -> 14./19., GridLinesStyle->Directive[GrayLevel[0.7],
AbsoluteThickness[0.9]], GridLines -> {None, Automatic},PlotRangePadding->None,
ImageSize -> 672, ImageMargins -> {{0, 0}, {0, 3}},
ImagePadding -> {{66, 66}, {All, 1}}
];
areaharvested = {0.25, 1.25, 0.3, -0.1, -0.5, -0.5, -0.5, 0.25, 0.4};
yield = {3.25, 1.1, 2.6, 3., 2., -0.3, 2., 1.5, 1.2};
totalgrainprod = areaharvested + yield;
exgraph = Show[BarChart[Transpose@{areaharvested, yield}, ChartLayout -> "Stacked",
ChartStyle -> {Orange, Green}, PlotRange ->{{8.5, 9.5}, {-1, 4.}},
PlotRangePadding -> None,
FrameTicks ->{{myTickGrid[-1, 4, 1, "%"], myTickGrid[-1, 4, 1, "%"]},
{myBarChartTicks[{"67-71", "77-81", "87-91", "97-01", "07-11"}, 9], None}}],
ListPlot[totalgrainprod, PlotStyle -> AbsolutePointSize[13]]]
Export["exgraph.emf", exgraph]