Ich möchte mit ggplot einen Farbblind-Test ähnlich dem unten beschriebenen erstellen.
Die Grundidee besteht darin, geom_hex
(oder vielleicht ein Voronoi-Diagramm oder möglicherweise sogar Kreise wie in der obigen Abbildung) als Ausgangspunkt zu verwenden und einen Datenrahmen zu definieren, der das Bild erzeugt, wenn er in ggplot gezeichnet wird.
Wir beginnen mit der Erstellung eines Datasets wie:
%Vor%plotten Sie das dann:
%Vor%Das gibt das Bild unten:
Der wichtigste fehlende Schritt besteht darin, ein Dataset zu erstellen, das tatsächlich ein aussagekräftiges Symbol (Buchstabe oder Zahl) darstellt, und ich bin nicht sicher, wie ich das am besten angehen soll, ohne die Koordinaten mühsam abzubilden. Idealerweise könnte man die Koordinaten vielleicht aus einer Bilddatei einlesen.
Schließlich könnte ein bisschen Ordnung die Kanten des Plots runden, indem die äußeren Punkte entfernt werden.
Alle Vorschläge sind sehr willkommen!
Wenn ich ein wenig näher an das heran komme, was ich möchte, können wir das Bild unten des Buchstabens "e" verwenden:
Mit dem imager
-Paket können wir das einlesen und in einen Datenrahmen umwandeln:
plotten diesen Datenrahmen dann mit geom_raster
:
Wenn wir geom_hex
anstelle von geom_raster
verwenden, können wir folgendes Diagramm erhalten:
Also, dorthin kommen, aber klar noch weit weg ...
Hier ist ein Ansatz zum Erstellen dieses Diagramms:
Pakete, die Sie brauchen:
%Vor%Holen Sie sich ein Bild in eine 2D-Matrix (x- und y-Koordinaten) von Werten. Dazu habe ich die .png Datei des e als "e.png" heruntergeladen und in meinem Arbeitsverzeichnis gespeichert. Dann etwas Verarbeitung:
%Vor%Als nächstes erstellen Sie eine Menge Kreise! Ich tat dies basierend auf diesem Post .
%Vor%Schließlich interpolieren Sie die Bildpixelwerte für die Mitte jedes Kreises. Dies zeigt an, ob ein Kreis über der Form zentriert ist oder nicht. Fügen Sie Rauschen hinzu, um Abweichungen in Farbe und Diagramm zu erhalten.
%Vor% Um die Farben zu korrigieren, optimieren Sie sie in scale_fill_gradient