Frage:
Excel-, Heatmap- und Datenvisualisierung ohne Add-Ins
lcrmorin
2013-03-28 15:48:03 UTC
view on stackexchange narkive permalink

Ich arbeite für ein großes Unternehmen mit einer restriktiven Internetrichtlinie und Excel-abhängigen Kollegen. Ich arbeite derzeit an der Entwicklung von Marktkorrelationen, die einige Statistiken, Datenanalysen, Clustering, Datenvisualisierung ... beinhalten. Nach dem, was ich im Internet gesehen habe, ist es keine gute Idee, dies in Excel zu tun. (siehe hier eine allgemeine Studie: Excel als Statistik-Workbench)

Nach einem Kampf von 2 Wochen habe ich endlich eine funktionierende Version von R und einige interessante Pakete von der IT erhalten. Meine Marktdaten sind in einer TXT-Datei gespeichert. Ich arbeite mit R daran und erstelle eine Datei "results.txt". Dann lade ich die Datei "results.txt" in Excel und zeichne, was mein Chef will.

Ich gebe zu, dass Excel nützlich ist, um viele Datensätze und Grafiken an derselben Stelle zu bearbeiten. Es ist der einzige gute Punkt im Vergleich zu R für das, was ich tun möchte. Ich denke, meine billige .txt-Lösung, um Berechnungen in R durchzuführen, ist korrekt und einfach ... (Für die Anekdote sind Dinge wie Rexcel zum Verbinden von R und Excel verboten, wo ich arbeite - fragen Sie nicht warum - also habe ich ein Makro ausprobiert, das Erstellen Sie eine .bat, um R zu starten und die Berechnung durchzuführen (zu komplex für meine Kollegen).

Für die Datenvisualisierung ist Excel jedoch sehr schlecht. Ich vermisse wirklich einige Grafiken, die ich in R.Dendogrammen, Boxplots, Histogrammen, Korrelationskreisen, zusammengefassten Korrelationen und Heatmaps habe, die für mich sehr interessant, aber nicht verfügbar sind. Meine Frage ist also, wie man sie in Excel bekommt? (Beachten Sie die strengen Internetrichtlinien; ich kann keine Add-Ins herunterladen). Gibt es eine (einfache) Möglichkeit, komplexe Dinge mit Makros oder Arbeitsmappen zu zeichnen? Haben Sie Quellen?

Tolle Antwort von @whuber. Aber ich verstehe nicht, warum Sie die Grafiken nicht auch in R produzieren?
Ich kann meinen Kollegen nur Excel-Dokumente geben ...
Was ich meinte war, warum nicht PowerPoint oder Word mit PNGs, die von R generiert wurden, eingefügt? Oder noch besser: HTML mit PNGs, die von knitr eingebettet wurden (benötigt keine neue Software außer R-Paketen, wenn Sie mit dem Endergebnis in HTML einverstanden sind), zusammen mit Tabellen und erklärendem Text, die Sie einbinden möchten.
Sie können bedingte Farbfunktionen verwenden, Sie müssen keine Add-Ins usw. hinzufügen. Es gibt auch einige andere Tricks im Blog (http://excelgraphs.blogspot.com/2013/03/heat-map-plot-in-excel-using). html).
Einige sehr kluge Antworten. Aber lohnt es sich wirklich, das Rad neu zu erfinden?
Wenn mich jemand dafür bezahlen würde, das Rad neu zu erfinden, würde ich es wahrscheinlich tun.
Vier antworten:
#1
+11
whuber
2013-03-29 00:56:34 UTC
view on stackexchange narkive permalink

Die kurze Antwort lautet "Nein". Es gibt keine einfache Möglichkeit, die meisten der von Ihnen erwähnten Grafiken zu erstellen. In jeder Grafikumgebung, in der Sie Liniensegmente zeichnen können (z. B. die Stiftplotter-Treiber aus den 60er, 70er und 80er Jahren), können Sie funktionsfähige Visualisierungen erstellen. Eine Methode besteht also darin, sich auf verbundene Streudiagramme zu konzentrieren (dies ist der Hauptmechanismus zum Erstellen von Liniensegmenten in Excel). Das Schreiben von Makros kann helfen, wenn dies zulässig ist.

Ich bin noch nicht weit in diese Richtung gegangen, habe jedoch vor einigen Jahren Tabellenkalkulationen mit nebeneinander angeordneten Box-and-Whisker-Plots erstellt, die zeigen, dass dieser Ansatz machbar ist

AL batting averages 2004

Diese Grafik, in der die einzelnen Schlagdurchschnitte in Baseballteams zusammengefasst sind, wurde erstellt, indem Zusammenfassungen der Team-Schlagdurchschnitte nach Bedarf kopiert und angeordnet wurden, damit sie als dargestellt werden können Streudiagramme. Dazu müssen Sie die $ (x, y) $ -Koordinaten der Endpunkte jedes Liniensegments berechnen, das im Diagramm angezeigt werden soll, diese in Spaltenreihenpaaren anordnen und als neue Reihe hinzufügen die Grafik. Zur Veranschaulichung ist hier ein Teil des Arbeitsblatts dargestellt, das diese Grafik steuert:

Spreadsheet extract

(Originaldaten werden blau angezeigt; alles andere wird berechnet.) P. >

Zum Beispiel wird die linke Seite des "Red Sox" -Boxplots (ganz rechts) durch die Koordinaten in den Spalten U: V, die rechte Seite in W: X und der mittlere Balken (mit dem Median) in angegeben M3: M5 und O3: O5 usw. Insgesamt zeigt diese Grafik $ 98 $ Datenreihen: sieben Serien pro Boxplot. Soweit ich mich erinnere (dies ist von vor einigen Jahren), war eine manuelle Bearbeitung erforderlich, um die Namen der abgelegenen Spieler zu formatieren, aber ansonsten wurden die Boxplots automatisch mit einem (sehr groben) Makro erstellt. Dieses Makro kopierte die Zusammenfassungsdaten (in den Spalten I: L) in die erforderlichen Spalten. Ein anderes Makro legt systematisch die Grafikstile für die Serie fest und so weiter. Zum Schreiben solcher Makros ist nur wenig Erfahrung mit VBA erforderlich: Sie "zeichnen" nur auf, was Sie tun, um ein Grundelement Ihrer Grafik zu erstellen, und bearbeiten dann das resultierende Makro, um seine spezifischen Zellreferenzen in relative Zellreferenzen umzuwandeln.

Ich empfehle nichts davon und erwarte, es nie wieder zu tun, aber ich kann bestätigen, dass der Prozess der Erstellung statistischer Grafiken in einer solch primitiven Umgebung lehrreich ist.

#2
+8
lcrmorin
2013-03-29 20:13:09 UTC
view on stackexchange narkive permalink

Da die Art und Weise, wie ich Heatmaps in Diagrammen dargestellt habe, sehr einfach ist und zum Zeichnen fast aller Elemente verwendet werden kann, denke ich, dass dies einige Leute interessieren wird. Für neugierige Menschen (und diejenigen, die Zeit zu verlieren haben).

Meine Idee ist es, Pixel für Pixel einen "Bildschirm" zu erstellen.

Erstellen Sie eine Tabelle mit der gleichen Größe wie Sie Plotten Sie es als gestapelte Spalten.

screen

Reduzieren Sie die Lücke zwischen den Spalten auf 0. (Klicken Sie mit der rechten Maustaste auf den Plotbereich, das Format und die Lücke Breite auf 0)

screen

Verwenden Sie ein Makro, um die Farbe jedes "Pixels" zu ändern.

  Sub Macro6 () Anwendung. ScreenUpdating = FalseActiveSheet.ChartObjects ("Ihre Tabelle"). Aktivieren für i = 1 bis Zeile für j = 1 bis Spalte rot = Int (WorksheetFunction.Max (ActiveSheet.Cells (j + Spalte 0, Zeile 0 + i), 0) * 255 ) '' positiver Wert in rot blau = Int (-WorksheetFunction.Min (ActiveSheet.Cells (j + col0, row0 + i), * 255) '' negativer Wert in blau ActiveChart.SeriesCollection (i) .Points (j). Interior.Color = RGB (255 - blau, 255 - rot - blau, 255 - rot) '' gibt jedem Pixel eine Farbe basierend auf dem Wert in einer Zelle in einer Tabelle, beginnend mit row0, col0 Next Next Application.ScreenUpdating = TrueEnd Sub  

und erhalten:

Heatmap

Wiederholen Sie dies jetzt mit größeren Daten (33 * 2681):

TADAAA!

My results

Versuchen Sie, es vor dem Absturz zu genießen und zu speichern:

Resource consuming

Es ist nützlich, ein Bild zu zeichnen und funktioniert gut mit wenigen Daten (keine Probleme mit 33 * 33), aber es verlangsamt Ihren Computer mit zu vielen Daten. Wie Sie sehen, hatte ich nicht die Geduld, mit den Details zu arbeiten Ein so langsamer Computer.

Wenn jemand die Methode mit einem guten Computer testen kann, wäre es interessant zu wissen, ob sie mit einem realen Computer verwendet werden kann.

Und jetzt Dendogramme !

+1 Ich habe dies mit Matrizen bis zu ungefähr 10.000 Elementen verwendet, aber danach stecken die Dinge zu sehr fest. Excel kann diese Daten sogar konturieren (es macht einen schrecklichen Job) und Pseudo-3D-Oberflächendiagramme erstellen (ein weiterer schrecklicher Job).
Ich habe in der Vergangenheit etwas Ähnliches getan, nämlich Zellen zu färben, um Bäume zu produzieren (ähnlich der Sorte, die Sie für Dendrogramme benötigen würden). Siehe Seite 7 [hier] (http://www.criminaljustice.ny.gov/crimnet/ojsa/2011-hate-crime.pdf). Ich war schon einmal in diesem Boot, obwohl nicht ganz so streng (einige obere Führungskräfte wollten nur Excel-Diagramme, weil * ihnen das Aussehen von Excel-Diagrammen gefiel *). Viel Glück.
Ich werde versuchen, die Tatsache zu nutzen, dass Dendrogramme wie kleine Spalten aussehen, die mittlere Spalten wiederherstellen, die große wiederherstellen ... scheint machbar. Aber Dienstag: D.
@Andy W Ihre Leistung ist beachtlich: Sie haben nicht nur gute Visualisierungen erstellt, das Dendrogramm sieht nicht einmal so aus, als wäre es mit Excel erstellt worden!
#3
+6
hgcrpd
2013-03-29 11:53:21 UTC
view on stackexchange narkive permalink

Jon Peltier hat eine wirklich großartige Website mit vielen Anleitungen zum Biegen von Excel, um exotischere Diagramme zu erstellen. Zum Beispiel Boxplots und Heatmaps. Sie brauchen sein Plug-In nicht, um viele davon auszuführen.

Excel kann nicht viele Dinge tun, und manchmal sind die Dinge, die Sie tun können, schwer zu warten und zu aktualisieren, aber wie in Ihrem Fall haben Sie manchmal einfach keine Wahl.

Reaktion meines Managers auf Jon Peltier Heat-Karten: "Schön, aber es sind farbige Arbeitsmappen, wir brauchen eine Grafik" ...
Wenn Sie mit einem statischen Bild arbeiten können, können Sie den Bereich auswählen und dann Special als Metadatei oder Bild in Powerpoint / Word kopieren und einfügen. Sonst wahrscheinlich nicht machbar.
Statisches Bild nicht erlaubt ... aber ich habe einen Weg gefunden, es zu tun, ich werde es nach einigen Finalisierungsarbeiten veröffentlichen!
#4
-1
Jose
2013-05-01 23:48:23 UTC
view on stackexchange narkive permalink

Es gibt einige Tools zum Erstellen von Baumkarten in Excel. Versuchen Sie Treemap oder Sparklines

Danke, aber der Titel ist explizit. Ich suche keine Add-Ins.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...