Ich versuche also, ein gestapeltes Balkendiagramm zu erstellen, in dem alle Segmente des Diagramms während des gesamten Programms konstant bleiben, aber ich kann nicht herausfinden, wie df.plot abgerufen werden kann um eine benutzerdefinierte Palette zu verwenden.Verwenden einer benutzerdefinierten Farbpalette im gestapelten Balkendiagramm (Python)
Ich möchte sicherstellen, dass wenn ich 20 verschiedene Berichte aus diesem Programm mache, Freeze wird immer zum Beispiel blau und Hail wird immer weiß sein.
Bitte werfen Sie einen Blick auf das folgende Beispiel - zuerst erstelle ich eine benutzerdefinierte Palette für alle Wetterwerte.
Wenn ich das Plotten tun, um die „gepaart“-Palette, es funktioniert gut und sieht wie folgt aus:
Und das ist im Grunde, was ich will, es sei denn mit der benutzerdefinierten Palette
Allerdings, wenn ich
df.plot(kind='bar', stacked=True,colormap=pal_weather)
bekomme ich einen Fehler, der mit endet:
C:\Anaconda3\lib\site-packages\pandas\tools\plotting.py in _get_standard_colors(num_colors, colormap, color_type, color)
157 if colormap is None:
158 raise ValueError("Colormap {0} is not recognized".format(cmap))
--> 159 colors = lmap(colormap, np.linspace(0, 1, num=num_colors))
160 elif color is not None:
161 if colormap is not None:
C:\Anaconda3\lib\site-packages\pandas\compat\__init__.py in lmap(*args, **kwargs)
116
117 def lmap(*args, **kwargs):
--> 118 return list(map(*args, **kwargs))
119
120 def lfilter(*args, **kwargs):
TypeError: 'dict' object is not callable
Jede Hilfe viel apopreciated
würdeVielen Dank!
Beispielcode folgt:
weather=('Day','Freeze', 'Wind', 'Flood', 'Quake', 'Hail')
pal_weather = dict(zip(weather, sns.color_palette("cubehelix", n_colors=len(weather))))
data1 = [[ "M", 66386, 174296, 75131, 577908, 32015],
[ "T", 58230, 381139, 78045, 99308, 160454],
[ "W", 89135, 80552, 152558, 497981, 603535],
[ "T", 78415, 81858, 150656, 193263, 69638],
[ "F", 139361, 331509, 343164, 781380, 52269]]
df = DataFrame(data=data1)
df.columns = ('Day','Freeze', 'Wind', 'Flood', 'Quake', 'Hail')
df.plot(kind='bar', stacked=True,colormap='Paired')
Dies scheint zu funktionieren, aber ein bisschen verwirrt, wie die Farben werden tatsächlich mit den Wetterwerten in Verbindung gebracht. Würden Sie das bitte erklären? Würde es wirklich zu schätzen wissen. –
@StumblingThroughDataScience Wenn es funktioniert, markieren Sie die Antwort als richtig, bitte – eyllanesc
Markt ... ein bisschen verwirrt, warum .. würde sehr zu schätzen wissen, Hilfe –