Hallo Zusammen, anbei ist eine beispielhafte Excel Datei. Ich will daraus nun ein Diagramm erstellen, welches als hozizontale Achse nur die Monate enthält, also z.B. Januar, Februar, ..., Dezember. Leider klappt das bei mir nicht. Entweder ist die X Achse völlig überladen, oder die Werte eines Tages werden einfach zusammengefasst. Ich hoffe, da kann mir jemand helfen. Es wäre super, wenn ihr das Diagramm erstellen könntet und die Datei anschließend wieder ins Forum postet. Danke und VG Luk_Luk
Einfügen Diagramm Typ Punkt X,Y Markierungspunkte im Mikroformat einstellen Achse anpassen: Achsenoptionen Min 42370 Max 42735 Hauptintervall 30 oder 7 Hilfsintervall 1 Zahl (ganz unten) ---> Typ Formatcode [$-407]MMMM;@ <--- (hinzufügen) Und das Diagramm breeeiiit ziehen.... evtl. besser als 3D-Säulendiagramm mit Monat (Spalte A) und Stunde (Spalte B) als oden und Daten (Spalte D) als Höhen-Werte p.s. bei der Tabelle geht regelmäßig mein Excel in die Knie...
:
Bearbeitet durch User
Jaja, es war nach Excel gefragt:
1 | ## Bibliotheken |
2 | import pandas as pd |
3 | import locale |
4 | locale.setlocale(locale.LC_TIME, "de_DE") |
5 | import matplotlib.pyplot as plt |
6 | import matplotlib |
7 | import numpy as np |
8 | import datetime as dt |
9 | import matplotlib.dates as mdates |
10 | from matplotlib import rcParams |
11 | import matplotlib.ticker as ticker |
12 | |
13 | |
14 | ## Plot formatieren |
15 | plt.rc('text', usetex=True) |
16 | plt.rc('text.latex', preamble=r'\usepackage{underscore}') |
17 | plt.rc('font', family='serif') |
18 | plt.rcParams.update({'font.size': 8}) |
19 | plt.rcParams['font.serif'] = "Linux Libertine" |
20 | plt.rcParams['axes.linewidth'] = 0.5 |
21 | plt.rcParams['legend.fancybox'] = False |
22 | plt.rcParams['axes.linewidth'] = 0.5 |
23 | |
24 | ## Import |
25 | daten = pd.read_csv("Lukas.csv", sep=";", decimal="," ,encoding="cp1252") |
26 | daten['Zeit'] = pd.to_datetime(daten['Datum '] + ' ' + daten['Uhrzeit'],dayfirst=True) |
27 | daten.set_index(['Zeit'], inplace=True) |
28 | |
29 | |
30 | ## Plot |
31 | fig, ax = plt.subplots(figsize=(50, 5), dpi=330) |
32 | daten.Werte.plot(ax=ax,linewidth=0.5,alpha = 0.8,color='xkcd:dark blue') |
33 | |
34 | h0, l0 = ax.get_legend_handles_labels() |
35 | legend = plt.legend(h0, l0, borderpad=0.15,labelspacing=0.1, frameon=True, edgecolor="xkcd:black", ncol=1, loc=2, framealpha=1, facecolor='white') |
36 | legend.get_frame().set_linewidth(0.3) |
37 | ax.set_xlabel('') |
38 | ax.xaxis.set_major_locator(mdates.MonthLocator()) |
39 | ax.xaxis.set_minor_locator(mdates.MonthLocator(bymonthday=16)) |
40 | ax.xaxis.set_major_formatter(ticker.NullFormatter()) |
41 | ax.xaxis.set_minor_formatter(mdates.DateFormatter('%B')) |
42 | |
43 | for tick in ax.xaxis.get_minor_ticks(): |
44 | tick.tick1line.set_markersize(0) |
45 | tick.tick2line.set_markersize(0) |
46 | tick.label1.set_horizontalalignment('center') |
47 | |
48 | |
49 | plt.tight_layout() |
50 | plt.show() |
51 | plt.savefig('Lukas.png', bbox_inches='tight') |
sorry, falscher Hintergrund https://www.mikrocontroller.net/attachment/435229/Lukas_seine_Daten.png
:
Bearbeitet durch User
Kolja L. schrieb: > sorry, falscher Hintergrund > > https://www.mikrocontroller.net/attachment/435229/Lukas_seine_Daten.png soweit war ich in Excel auch schon... :-P ist trotzdem unleserlich
der Spalte D mit den Werten eine Spaltenüberschrift verpassen Pivottabelle über die Daten erstellen Zeilen: Datum aus Spalte A Spalten: Uhrzeit aus Spalte B Werte: Werte aus Spalte D Pivottabelle ohne Summen-Spalte/-zeile markieren Einfügen Diagramm "3D Säulen" schön groß ziehen alternativ in der Pivotabelle Spalten und Zeilen tauschen allerdings lässt sich kein Zusammenhang der Werte zu den Uhrzeiten/Tagen erkennen
Danke für eure Antworten. Leider helfen sie mir allerdings beide nicht so wirklich weiter. @kolja82: Super, genauso ein Diagramm würde ich mir wünschen. Und ja, wenn ich dürfte, dann würde ich es auch nicht in Excel machen, allerdings muss ich..Und in Excel komm ich nicht weiter :/ @mike_b97: Wenn ich es so mache wie von dir beschrieben, dann erscheint ein Diagramm, welches zwar tatsächlich nur das Datum als X-Achse anzeigt. Allerdings werden jetzt ja die Daten für eine Uhrzeit über die Tage der Monate geplottet. D.h. alle Daten um bspw. 12:00 werden gesammelt und über den 365 Tagen des Jahres geplottet. Ich will aber schon eine chronologische Abfolge im Diagramm..Also im Prinzip genau so ein Diagramm wie von kolja82
Aus Mitleid Excel benutzen zu müssen, hab ich es damit auch mal versucht ;-) X-Achse formatieren Hauptstriche 1 Monat Zahl: Formatcode MMMM für den ganzen Namen, MMM für Kürzel mit drei Buchstaben. Mit den Leerzeichen davor schiebst du die Mittig ;-)
:
Bearbeitet durch User
Lukas R. schrieb: > @mike_b97: Wenn ich es so mache wie von dir beschrieben, dann erscheint > ein Diagramm, welches zwar tatsächlich nur das Datum als X-Achse > anzeigt. Allerdings werden jetzt ja die Daten für eine Uhrzeit über die > Tage der Monate geplottet. D.h. alle Daten um bspw. 12:00 werden > gesammelt und über den 365 Tagen des Jahres geplottet. Ich will aber > schon eine chronologische Abfolge im Diagramm..Also im Prinzip genau so > ein Diagramm wie von kolja82 da siehst du absolut nix auf dem Diagramm, hab ich versucht wenn, dann musst du das von mir zuerst vorgeschlagene Diagramm nehmen post um 10:55Uhr und die Linien entfernen und nur ganz feine Markierungspunkte anzeigen lassen dann kannst du zwar auch nur eine Punktwolke erkennen, aber besser als eine simple blaue Fläche nein, wie gesagt probier es mit ner Pivotabelle und darauf aufbauend einem Pivodiagramm 3D Säulen, dann hast du die Tage und den zeitlichen Verlauf auf jeweils einer Achse und die Werte als Höhe Bei mir wird Excel dann immer schnarchlahm und dafür hab ich i.M. keine Zeit seit dem blue screen of death deswegen heute mittag hab ich nichmal mehr Ton... gnimpf
:
Bearbeitet durch User
Mike B. schrieb: > da siehst du absolut nix auf dem Diagramm, hab ich versucht Um die Aussage des Diagramms ging es ja auch nicht. Vielleicht sind das ja eh nur Beispieldaten? Mike B. schrieb: > Bei mir wird Excel dann immer schnarchlahm und dafür hab ich i.M. keine > Zeit Jo, bei mir auch. MMn ist Excl ja auch nicht das richtige Tool für solch große Datensätze.
Kolja L. schrieb: > Um die Aussage des Diagramms ging es ja auch nicht. > Vielleicht sind das ja eh nur Beispieldaten? Richtig, die echten Daten kann ich hier nicht veröffentlichen. Danke Kolja, allerdings taucht hier schon das nächste Problem auf. Zoomt man in das von dir erstellte Diagramm ein (sh. beigefügtes Bild), dann sieht man, dass es sich im Prinzip um waagerechte Linien handelt, die miteinander verbunden sind. Jede waagrechte Linie entspricht einen Tag. Das heißt die X Werte sind die Tage, und alle Werte des Tages werden an der selben Stelle der X Achse aufgetagen.
Kolja L. schrieb: > Jaja, es war nach Excel gefragt: und dann schreibst du noch nicht mal hin, was es stattdessen ist... saubere arbeit!
Sven K. schrieb: > > und dann schreibst du noch nicht mal hin, was es stattdessen ist... > saubere arbeit! Das ist ja jetzt nicht wichtig. Sowas kann man auch mal vergessen. Wäre sinnvoller gewesen, sich auf das Thema im Beitrag zu beziehen..
Lukas R. schrieb: > Jede waagrechte Linie entspricht einen Tag. Oh, zweiten Teil der Aufgabe vergessen. Zum Glück ist das hier keine Klausur. Aber ich glaube, dass ist die Grenze von Excel. Bin aber gerade nicht vor dem Rechner. Bleibt es so, wenn du das Diagramm nur einen Monat anzeigen lässt?
Kolja L. schrieb: > Bleibt es so, wenn du das Diagramm nur einen Monat anzeigen lässt? Ja, es bleibt so. Ohjee, Excel kann einem ganz schön viel Nerven kosten..
Das kann Pandas mit matplotlib & co auch. Der Unterschied ist, dass es am Ende funktioniert und besser aussieht.
Kolja L. schrieb: > Das kann Pandas mit matplotlib & co auch. > Der Unterschied ist, dass es am Ende funktioniert und besser aussieht. Warst du früher mal Missionar von Beruf?
Auf die Schnelle habe ich nur noch das hier gefunden: Achsentyp: Textachse Dann musst du aber den Formatcode ändern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.