Возможно, вы выяснили, как подать ответ Алексея по предоставленной им ссылке.Но на случай, если у вас возникнут проблемы, я расскажу, как применить эту технику к 2D-графике.
Я нашел трудный путь, который, если вы хотите создать хороший сюжет, должен быть очень специфичным для Mathematica.По этой причине, как вы могли заметить в моем посте Растры в 3D Я создал объект, задающий все параметры, чтобы Mathematica могла быть счастливой.
in = 72;
G2D = Graphics[{},
AlignmentPoint -> Center,
AspectRatio -> 1,
Axes -> False,
AxesLabel -> None,
BaseStyle -> {FontFamily -> "Arial", FontSize -> 12},
Frame -> True,
FrameStyle -> Directive[Black],
FrameTicksStyle -> Directive[10, Black],
ImagePadding -> {{20, 5}, {15, 5}},
ImageSize -> 5 in,
LabelStyle -> Directive[Black],
PlotRange -> All,
PlotRangeClipping -> False,
PlotRangePadding -> Scaled[0.02]
];
Я должен упомянуть здесь, чтоВы должны указать ImagePadding
.Если вы установите значение all
, ваш eps-файл будет отличаться от того, что Mathematica показывает вам.В любом случае, я думаю, что наличие этого объекта позволяет вам легко изменять свойства.
Теперь мы можем перейти к вашей проблеме:
plot = ListDensityPlot[
Table[Random[], {100}, {100}],
InterpolationOrder -> 0,
Options[G2D]
]
Следующее разделяет оси и растр и объединяет их в результат:
axes = Graphics[{}, AbsoluteOptions[plot]];
fig = Show[plot, FrameStyle -> Directive[Opacity[0]]];
fig = Magnify[fig, 5];
fig = Rasterize[fig, Background -> None];
axes = First@ImportString[ExportString[axes, "PDF"], "PDF"];
result = Show[axes, Epilog -> Inset[fig, {0, 0}, {0, 0}, ImageDimensions[axes]]]
Единственное отличие, которое я пока не могу объяснить, - это метки осей, онииметь десятичную точку.Наконец, мы экспортируем их:
Export["Result.pdf", result];
Export["Result.eps", result];
В результате получаются файлы размером 115 КБ для файла PDF и 168 КБ для файла EPS.
ОБНОВЛЕНИЕ:
ЕслиВы используете Mathematica 7, файл eps не будет корректно отображаться.Все, что вы увидите, это ваша главная фигура с черными по бокам.Это ошибка в версии 7. Однако это исправлено в Mathematica 8.
Я уже упоминал ранее, что не знаю, почему метки осей были разными.Алексей Попков предложил исправить это.Для создания axes
, fig
и result
используйте следующее:
axes = Graphics[{}, FilterRules[AbsoluteOptions[plot], Except[FrameTicks]]];
fig = Show[plot, FrameStyle -> Directive[Opacity[0]]];
fig = Magnify[fig, 5];
fig = Rasterize[fig, Background -> None];
axes = First@ImportString[ExportString[axes, "PDF"], "PDF"];
result = Show[axes, Epilog -> Inset[fig, {0, 0}, {0, 0}, ImageDimensions[axes]]]