Ich erstelle in Mathematica eine Anwendung für verschiedene Plot- / Diagrammzeichnungen. Letztendlich wird es eine GUI haben, aber der erste Schritt ist es, den Code richtig zu machen und einfach genug für eine GUI zu verwalten. Ich habe Schwierigkeiten, die Legenden so einzustellen, dass sie keinen Rahmen haben.
Hier ist ein minimales Beispiel (mit einigen Optionen für BarChart
bereits angepasst mit SetOptions
.
Und hier ist was ich bekomme:
Versuchen Sie, wie ich könnte, ich werde diese Grenze um die Legende nicht los. Sie können sehen, dass LegendAppearance
nichts tut - ich habe auch ein paar andere Ansätze ausprobiert.
Ich bin zurückhaltend, kleine Rechtecke von Hand zu kodieren, weil es sehr schwierig sein wird, in der eventuellen GUI richtig zu kommen. ChartLabels
wird auch nicht funktionieren, da dies bereits für Datumsbezeichnungen in der realen Version des Diagramms verwendet wird.
Hat jemand irgendwelche Vorschläge?
Ich kann keine Optionen finden, um den Rahmen auszuschalten. Die Dokumentation für LegendAppearance ist ziemlich minimal und das Styling von Legenden im Allgemeinen wird nicht viel diskutiert (siehe [ 2 ] und Links innerhalb).
Die einfachste Lösung, die ich mir vorstellen kann, ist die manuelle Änderung der Grafik. Charts mit Legenden produzieren beschriftete Grafikobjekte. Für eine einzelne Legende sieht das erzeugte Labeled
-Objekt wie Labeled[Graphics[...], Framed[...], pos]
aus. Sie müssen also nur den Framed
-Teil entfernen. Dies könnte getan werden, indem man alle Framed
heads mit einem ReplaceAll
(z. B. BarChart[...] /. Framed -> Identity
) entfernt, aber vielleicht wäre etwas gezielter sicherer.
%Vor%
Das obige könnte auch mit Replace[bc, Framed[leg_] :> leg, {1}]
oder MapAt[Apply[Identity, #] &, bc, 2]
oder ähnlichen Konstruktionen erzeugt werden. Es würde nicht viel brauchen, um den Code zu ändern, wenn Sie mehr Beschriftungen oder andere Arten von Grafikobjekten haben.
Tags und Links wolfram-mathematica charts bar-chart