Ich habe eine Reihe von Datensätzen, für die ich ein Liniendiagramm erstellen muss. Ich habe eine Funktion erstellt, die ein DF mit den Daten, ein Datum zur Angabe der vertikalen Linie für „Inception Date“ und das Verzeichnis zum Speichern des erstellten Diagramms benötigt.
Das Problem, das ich habe Der Nachteil besteht darin, dass ich für das Liniendiagramm scheinbar keine Yticks richtig hinzufügen kann, um sie gleichmäßig und über den letzten Datenpunkt hinaus anzuzeigen. Ich möchte auch, dass die Ytick-Werte auf den Zehnerwert gerundet werden.
Das habe ich versucht:
Verwenden Sie np.arange(), aber es hat nicht gut funktioniert. Der Bereich der Daten variiert je nach Datensatz und ich konnte das nicht herausfinden.
Verwenden Sie eine Bedingung, um zu überprüfen, ob der Maximalwert über oder unter 1000 liegt, um die Klassen zu vereinfachen Verteilung. Ich bin mir nicht sicher, ob dies ein guter Ansatz ist, da ich von einem Schwellenwert von 1000 ausgegangen bin. Dann setze ich nbins=7, um zu sehen, wie es aussieht. Ich kann nicht herausfinden, wie ich den nbins-Wert dynamisch machen kann, damit die Bins gleichmäßig über die y-Achse verteilt sind.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.ticker as ticker
import os
from datetime import datetime, timedelta
from datetime import *
import math
Ich habe eine Reihe von Datensätzen, für die ich ein Liniendiagramm erstellen muss. Ich habe eine Funktion erstellt, die ein DF mit den Daten, ein Datum zur Angabe der vertikalen Linie für „Inception Date“ und das Verzeichnis zum Speichern des erstellten Diagramms benötigt. Das Problem, das ich habe Der Nachteil besteht darin, dass ich für das Liniendiagramm scheinbar keine Yticks richtig hinzufügen kann, um sie gleichmäßig und über den letzten Datenpunkt hinaus anzuzeigen. Ich möchte auch, dass die Ytick-Werte auf den Zehnerwert gerundet werden. Das habe ich versucht: [list] [*] Verwenden Sie np.arange(), aber es hat nicht gut funktioniert. Der Bereich der Daten variiert je nach Datensatz und ich konnte das nicht herausfinden. [*]Verwenden Sie eine Bedingung, um zu überprüfen, ob der Maximalwert über oder unter 1000 liegt, um die Klassen zu vereinfachen Verteilung. Ich bin mir nicht sicher, ob dies ein guter Ansatz ist, da ich von einem Schwellenwert von 1000 ausgegangen bin. Dann setze ich nbins=7, um zu sehen, wie es aussieht. Ich kann nicht herausfinden, wie ich den nbins-Wert dynamisch machen kann, damit die Bins gleichmäßig über die y-Achse verteilt sind. [/list] Hier ist meine Funktion:< /p> [code]def build_multiple_line_graphs(df, inception_date, line_graph_path): """Builds line graphs for market data.""" # adjust this line to your local folder path os.makedirs(line_graph_path, exist_ok=True)
# here is where I tried np.arange with no success #ax.yaxis.set_major_locator(ticker.MultipleLocator(increment)) #ax.set_yticks(np.arange(0,df+1, increment)) #plt.yticks(np.arange(0,max(df)+increment, increment)) #start, end = ax.get_ylim() #stepsize = end/5 #ax.yaxis.set_ticks(np.arange(0, end+1, 100)) ax.set_ylim(ymin=0)
# set custom x-axis label every 5 years ax.xaxis.set_major_locator(mdates.YearLocator(5)) ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) plt.xticks(rotation=0, ha='center') ax.grid(axis='y', color='gray')
# saving the plot plt.gcf() # get current figure fig_size = plt.gcf().get_size_inches() plt.gcf().set_size_inches(fig_size[0]*2, fig_size[1]*2) plt.savefig(os.path.join(line_graph_path, 'name_linegraph.png'), bbox_inches='tight',dpi=300)
# no display of the plot needed plt.close()
[/code] So sieht es jetzt aus: [img]https://i.sstatic.net/WPhCWOwX.png[/img]
Das Gründungsdatum in diesem Beispiel ist der 23.08.2024. Hier sind die Bibliotheken, die ich verwendet habe: [code]import matplotlib.pyplot as plt import matplotlib.dates as mdates import matplotlib.ticker as ticker import os from datetime import datetime, timedelta from datetime import * import math [/code]
Ich versuche, eine statische Methode in Python mit dem Tippen zu type zu fügen. . Der Typ -Hinweis wird jedoch nicht auf das Selbstargument innerhalb der Funktion selbst angewendet.
from typing...
Ich erstelle ein Liniendiagramm in ECharts, möchte aber einen bestimmten Bereich der Y-Achse verzerren/gewichten, damit er größer ist, als er linear wäre. Beispielsweise möchte ich, dass die Werte...
Ich habe also eine glockenförmige Verteilung von Punkten, auf die ich eine Gaußsche Funktion anpassen möchte. Höhepunkt dieser Glocke. Die Verteilung und der Ort dieser Lücke sind immer symmetrisch....
Ich habe die Beiträge hier und hier bereits verwiesen. Markieren Sie es nicht als doppelt. der kategorialen Spalten hat eine Mischung aus numerischen und Stringwerten. Trotzdem geben sie nur den...