Wie man gut aussehende Pfeile in Matlab?
Ich habe versucht, Sie zu zeichnen Pfeile in Matlab in meiner Figur, aber Sie sehen alle schrecklich.
Außerdem will ich meinen Pfeil zu werden, ein Dreieck, nicht eine V.
Ich habe versucht, über die verfügbaren Pakete auf der Matlab File Exchange: Pfeil, Pfeile, arrows3, und wahrscheinlich mindestens eine andere.
Ich habe sogar versucht, manuell erstellen Sie einen Pfeil in der Matlab-Bild-editor, aber wenn ich passen Sie die Linienstärke, der Pfeil sieht so aus:
Benutzte ich die annotation Befehl zum erstellen der Pfeil oben:
annotation(gcf,'arrow',[0.621875 0.457916666666667],...
[0.205421152030217 0.40755429650614],...
'HeadLength',4,'LineWidth',5);
Hier ist das Ergebnis, zu versuchen, die Pfeil - Paket finden Sie hier: Pfeil.m (beachten Sie, wie die Pfeiltaste nach unten, der Kopf ist nicht senkrecht zu der Linie:
Ich selbst habe versucht, die folgenden und hier ist das Ergebnis unten (beachten Sie die schreckliche Suche arrowhead):
figure
plot(1:10, 1:10)
annotation(gcf,'arrow',[0.621875 0.457916666666667],...
[0.205421152030217 0.40755429650614],...
'HeadLength',4,'LineWidth',5);
InformationsquelleAutor Veridian | 2013-08-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vektor-Grafiken ist schwer. Obwohl Matlab die Typografie ist nur halb so schlimm, aber hier ist eine simple text-basierte Lösung (ich weigere mich, das zu tun diese Art der annotation in Matlab):
ergibt eine Figur wie diese
Beachten Sie, dass ich verwendet habe
'\leftarrow'
weil es Punkte in Richtung der null Grad, was macht Mathematik zu tun in meinem Kopf zu erleichtern. Dies ist keine Dosen-Lösung, werden Sie noch brauchen, zu hantieren mit der position zu überwinden, die Tatsache, dass Matlab ist, idem Sie diese als text (siehe'Extent'
und'Margin'
Eigenschaften). Nicht überraschend, sehen Sie möglicherweise kleine Pannen. Der LaTeX-interpreter verwendet werden kann, um zu erhalten ein anderer Stil, Pfeilspitze:Habe ich nicht bekommen, die kleinen Pannen mit dieser option, aber die Pfeile sehen anders aus (wahrscheinlich sind es andere LaTeX-Pfeil-Stile, die könnten ersetzt werden). Ändern der schriftart kann auch eine Wirkung haben und es gibt sicherlich auch andere text-basierte Pfeile, die verwendet werden könnten. Weitere Informationen zum hinzufügen von Pfeilen können gefunden werden in dieser Artikel von The MathWorks.
Ich möchte, dass ein Pfeil, der wie ein Dreieck geformt
Es kann getan werden. Sie brauchen nur die Verwendung von LaTeX (und wahrscheinlich installieren Sie zusätzliche tex-Schriften). Ich wollte nicht sagen, würde einfach sein.
Es gibt keinen Weg, um den Pfeil MEHR?
Man kann nicht alles haben. Ich würde eine schriftart verwenden, die enthält ein gefülltes Dreieck (wie der Kopf Stil, den Sie möchten) und fügen Sie dann den Pfeil in den Schwanz, wie eine Zeile Ihrer gewünschten Gewicht. Ich habe noch nicht gefunden, eine befriedigende Allgemeine Lösung (auch für 2-D-Pfeile) für Ihre Frage in Matlab. Ich hätte Interesse an mir. Es ist sicherlich machbar mit Vektoren, aber es würde Arbeit und know-how.
InformationsquelleAutor horchler
Andere Lösung ist die Verwendung der open-source - Waterloo-Grafik - eine Bibliothek, die Adressen dieser durch eine Reine Java-Bibliothek für 2D-Grafik-Funktionen können einfach integriert werden in Matlab. Hier sehen Sie einige Beispiele hier...
Beispielsweise versuchen, diesen code (nach dem ordnungsgemäßen Einbau waterloo)
Genau wie erstelle ich einen Pfeil?
siehe mein edit in der Antwort
Vielen Dank, aber ich möchte einen schwarzen Pfeil, mit einem Schwanz, der erhält diese Form, wenn ein Winkel von einem Grad, der nicht bei 0, 90, 180, oder 360.
fügen Sie einfach
...'color',[ 0 0 0]
um die annotation der Zeile. Versuchen Sie zu erkunden, andere Griffe, um zu sehen, wie Sie tun, was Sie wollen.InformationsquelleAutor bla
Gearbeitet mit Matlab seit mehr als 10 Jahren und sehen fast null Fortschritte in der Qualität der Grundstücke (anti-Aliasing Ausgabe-bitmap, die menschenwürdige suchen, eps-Dateien, ...), beschloss ich, dass meine lange Zeit-Lösung wird hier. Einige Beispiele von anständigen suchen Pfeile hier, mehr schöne Grafiken hier. Leider, einige der Schubladen verhindern, dass ich vom gehen ganz zu numpy/scipy/matplotlib. Ich weiß, das ist eher ein rant als eine Antwort, aber das ist meine Lösung ...
Nein, es ist nicht, ist nicht standalone, es ist der Plot-Paket, das geht mit
numpy
einer Bibliothek der python-scripting-Sprache (ein richtiges Objekt-orientierte Skriptsprache, mit der Bibliotheken für jede Aufgabe vorstellbar). Einige von Matlab - Toolboxen, die abgedeckt sind, durch die scipy-Projekt. Ein bisschen eine Lernkurve, aber es lohnt sich. Es ist das einzige open-source-alternative zu matlab, und fast die Hälfte meiner Kollegen sind, es zu benutzen. Vergessen octave/scilab, numpy/scipy/matplotlib/ipython ist die Zukunft ...15+ Jahre hier, und leider, ich kann dem nur Zustimmen. Matlab kann gut sein, bei der Berechnung, aber Grafik kann ein Alptraum sein. Von dem, was ich gesehen habe von HG2 im realen Einsatz, ist die Zukunft nicht unbedingt vielversprechend.
Ich habe noch nicht bekommen, es installiert noch. Das ist immer ein riesiger Aufwand, nur um eine Linie zu zeichnen. Zwischen Fehler mit matplotlib, sowas nennt dateutil und ez_setup, das ist lächerlich. Ist es überall mit straight-forward-Anweisungen?
Ich wollte nicht sagen, das war eine Lösung, die Ihnen Ihre Handlung heute Abend, das wird nehmen Sie einige Zeit, um das setup und lernen. Erste herunterladen und installieren von python und arbeiten Sie Ihren Weg durch das tutorial, dann installieren Sie numpy und Lesen Sie das tutorial und 'numpy für matlab-Benutzer" - Seite. Dann installieren matplotlib und gehen Sie durch einige Beispiele. Unter windows ist der einfachste Weg, könnten Sie einige fertige python-distribution (ich habe activestate oder enthought epd, aber das war vor einigen Jahren). Auf linux, nur verwenden Ihre standard-Paket-manager und alles wird in Ordnung sein.
InformationsquelleAutor Bas Swinckels
Mit Köcher oder quiver3 für 3-D-plots wird sicherlich besser Aussehen als die, die Letzte Pfeil, den Sie mit Anmerkungen. Ich bin nicht sicher, es wird viel besser Aussehen, als diejenigen, die Sie mit den Pfeiltasten.m-Paket, obwohl. Es ist möglich, ändern Sie die stlyes auf Köcher auch, wenn du willst.
Die Erhöhung der Köcher Pfeil-Kopf-Größen können sehr ärgerlich sein. Würde so etwas funktionieren? mathworks.com/matlabcentral/fileexchange/...
Versucht das auch, hat auch nicht geholfen.
InformationsquelleAutor dynamo
Griff ich auf die Installation von InkScape und zeichnen Pfeile. Nichts schlagen die Einfachheit und die Qualität.
InkScape-Website
InformationsquelleAutor Veridian
Beim line-basierte Pfeile scheitern, können Sie immer versuchen patch-basiert:
Zwar mehr Arbeit, können Sie möglicherweise parametrieren die oben in eine Funktion, der eine Reihe von Argumenten für die Einstellung der Skalierung, Seitenverhältnis, Drehung und position des Pfeils. Sie können sogar anpassen, die Farbe, die edge-Zeile-Farbe und alpha-Transparenz.
Diese Art von Idee zu haben scheint, wurde umgesetzt, indem François Beauducel in seiner Datei Exchange Vorlage PFEILE: generalisierte 2-D plot Pfeile.
Ich habe versucht, die Francois Beauducel Datei, es hatte SO viele Probleme mit der Größenänderung Pfeile.
Können Sie erläutern, auf was Sie versuchte, für seine Unterwerfung?
Habe ich versucht, zeichnen Pfeile, und es hat nicht richtig funktioniert, es war schrecklich. Wenn Sie können, Bearbeiten Sie Ihre Antwort mit den folgenden Parametern und mir beweisen, das es funktioniert, dann werde ich das mal versuchen: Y-Achse log-skalierte x-Achse domain von 0 bis 0.018, y-Achse von 0 bis 300. Pfeil nach unten gedreht [x,y] = (0.01,140) auf etwa [x,y] = (0.01,100), mit einer Breite ähnlich wie die Pfeile, ich zog in meine Frage.
Ein Teil des Problems ist die log-Skalierung auf der y-Achse. Das wird verfälschen patch-basierte Pfeile, die wahrscheinlich der Grund, warum eine Reihe von diese Lösungen Versagen. Es wird wahrscheinlich komplizierter sein, finden Sie eine Allgemeine Lösung, die mit log-Skalierung).
InformationsquelleAutor gnovice
Gibt es jetzt die DaVinci Zeichnen toolbox (full disclosure: ich schrieb/verkaufen der toolbox), die mithilfe von low-level-Matlab-Befehle wie
plot()
undpatch()
zu ziehen, mid-level-Formen wie Pfeile. Beispiel-syntax:Aus der Dokumentation:
InformationsquelleAutor Leonard Wayne