Я не могу найти какие-либо варианты, чтобы выключить кадр.Документация для LegendAppearance довольно минимальна, а оформление легенд вообще не вызывает большого обсуждения (см. [ 2 ] и ссылки внутри).
Самое простое решениеЯ могу думать о том, чтобы вручную изменить графику.Графики с легендами производят Помеченные графические объекты.Для отдельной легенды созданный объект Labeled
выглядит как Labeled[Graphics[...], Framed[...], pos]
, поэтому все, что вам нужно сделать, это удалить часть Framed
.Это можно сделать, просто удалив все Framed
головы, используя ReplaceAll
(например, BarChart[...] /. Framed -> Identity
), но, возможно, что-то более целевое было бы безопаснее.
mydata = {4.5644, 5.546, 6.8674, 2.7688, 1.742, 5.3952, 4.3392,
4.5016, 3.7748, 1.838, 2.24, 0.693, 2.818, 4.9, 3.939, 3.459,
3.755, 4.475, 3.857, 3.215, 2.206, 2.206, 2.117, 3.403, 3.277,
3.761, 4.276, 2.559, 3.486, 4.778, 2.281, 2.865, 3.629, 4.916,
4.572, 5.244, 5.395, 2.865, -0.524, 5.01, 4.401, 4.513, 4.54};
bc = BarChart[{Legended[Style[mydata[[;; -4]], Red], "Data"],
Legended[Style[mydata[[-3 ;;]], Blue], "Forecasts"]},
PlotRange -> {-2, 8}, BarSpacing -> 0.4, LegendAppearance -> "Row"]
bc /. Labeled[g_, Framed[leg_], pos_] :> Labeled[g, leg, pos]
Вышесказанное также может быть получено с использованием Replace[bc, Framed[leg_] :> leg, {1}]
или MapAt[Apply[Identity, #] &, bc, 2]
или аналогичных конструкций.Изменение кода не займет много времени, если у вас есть больше меток или различных типов графических объектов.