So ändern Sie die Größe der x-Achse und unterscheiden sie von der y-Achse Matplotlib

Sumpf Rangel

Ich habe die folgende Entwicklung, an der ich mit ElementTree-, Pandas- und Matplotlib-Modulen in Python arbeite:

    import xml.etree.ElementTree as ET
    import pandas as pd
    from matplotlib import pyplot as plt
    
    file_xml = ET.parse('Audio_Setting_[SyncG3].xml')
    rootXML = file_xml.getroot()
    
    def transfor_data_atri(rootXML):
        file_xml = ET.parse(rootXML)
        data_XML = [
            {"Name": signal.attrib["Name"],
             "Value": int(signal.attrib["Value"].split(' ')[0])
             } for signal in file_xml.findall(".//Signal")
        ]
        
        signals_df = pd.DataFrame(data_XML)
        extract_name_value(signals_df)
        
    def extract_name_value(signals_df):
        #print(signals_df)
        names_list = [name for name in signals_df['Name'].unique()]
        num_names_list = len(names_list)

        colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']

        # Creation Graphic
        fig = plt.figure(figsize=(18, 20))
        plt.suptitle(f'File PXML: {rootXML}', fontsize=20, fontweight='bold', color='SteelBlue', position=(0.75, 0.90))
        fig.tight_layout()
        i = 1
        for name in names_list:
            # get data
            data = signals_df[signals_df["Name"] == name]["Value"]
            datax = signals_df["Name"]
            # x = [n for n in range(len(data))]
            x = [n for n in range(len(datax))]
            print(x)
            # get color
            j = random.randint(0, len(colors) - 1)
            # add subplots
            ax = plt.subplot(num_names_list, 1, i)
            ax.plot(x, data, drawstyle='steps', marker='o', color=colors[j], linewidth=3)
            # plt.xticks(None)
            ax.set_ylabel(name, fontsize=12, fontweight='bold', color='SteelBlue', rotation=50, labelpad=45)
            ax.grid(alpha=0.4)
            i += 1

        plt.show()

Ich erhalte folgenden Fehler: Fehlerbild

Ich habe nach dem Fehler gesucht und verstehe vollkommen, dass die Abmessungen von x und y gleich sein müssen, aber es besteht die Möglichkeit, ein Diagramm zu erstellen, bei dem die x-Achse größer als die y-Achse ist? und auch die x-Achse kommt von einer Variablen, die nichts mit der y-Achse zu tun hat? wie wäre das?

Das heißt, das Diagramm, das ich erreichen muss, sieht wie folgt aus (ich weiß, dass es noch nicht fertig ist und ich komme Schritt für Schritt näher): Endgültige Grafik

Wobei die x-Achse die Anzahl aller Werte ist, die sie im Signal-Element der XML-Datei hat: Ich habe sie hier eingefügt , weil sie so umfangreich ist und dieser Wert größer als die y-Achse ist, aber wie man die 3 . betrachtet Werte, die ich aus der XML bringe, sind Singal Name, Signal Value als y-Achse und Count of Signals als x-Achse. Ich freue mich sehr über Ihre Kommentare und Hilfe.

crayxt

IIUC, Sie versuchen, mehrere abgestufte Werte gegen ihre Reihenfolge oder ihr Aussehen (X-Index) in einer XML-Datei darzustellen. Dann sollten Sie gegen die X-Werte des ursprünglichen Datenrahmens zeichnen. Ich habe Ihren Code nicht viel für Stil oder ähnliches geändert, nur ein wenig korrigiert.

import xml.etree.ElementTree as ET
import pandas as pd
from matplotlib import pyplot as plt
import random

file_xml = 'example_un_child4.xml'

def transfor_data_atri(rootXML):
    file_xml = ET.parse(rootXML)
    data_XML = [
        {"Name": signal.attrib["Name"],
         "Value": int(signal.attrib["Value"].split(' ')[0])
         } for signal in file_xml.findall(".//Signal")
    ]
    
    signals_df = pd.DataFrame(data_XML)
    extract_name_value(signals_df)
    
def extract_name_value(signals_df):
    #print(signals_df)
    names_list = [name for name in signals_df['Name'].unique()]
    num_names_list = len(names_list)

    colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']

    # Creation Graphic
    #fig = plt.figure(figsize=(18, 20), sharex=True)
    fig, ax = plt.subplots(nrows=num_names_list, figsize=(10, 15), sharex=True)
    plt.suptitle(f'File PXML: {file_xml}', fontsize=20, fontweight='bold', color='SteelBlue', position=(0.75, 0.90))
    #fig.tight_layout()
    i = 1
    for pos, name in enumerate(names_list):
        # get data
        data = signals_df[signals_df["Name"] == name]["Value"]
        datax = signals_df["Name"]
        # x = [n for n in range(len(data))]
        #x = [n for n in range(len(datax))]
        #print(x)
        # get color
        j = random.randint(0, len(colors) - 1)
        # add subplots
        #ax[pos] = plt.subplot(num_names_list, 1, i)
        ax[pos].plot(data.index, data, drawstyle='steps', marker='o', color=colors[j], linewidth=3)
        # plt.xticks(None)
        ax[pos].set_ylabel(name, fontsize=12, fontweight='bold', color='SteelBlue', rotation=50, labelpad=45)
        ax[pos].grid(alpha=0.4)
        i += 1
    fig.tight_layout()
    plt.show()

transfor_data_atri(file_xml)

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

So ändern Sie die Größe von Bildern mit korrekter Neigung in der x- und y-Achse mithilfe von jquery resizable

So ändern Sie die Plotreihenfolge der kategorialen x-Achse

So ändern Sie die Beschriftungen der x-Achse in ggboxplot

So vergrößern Sie die Textgröße der Beschriftungen der x- und y-Achse und den Titel in Matplotlib- und Prettyplotlib-Diagrammen

Plotten Sie die Wortzahl auf der x-Achse und ihr Vorkommen auf der y-Achse von Pandas df

Ändern Sie die Schriftfarbe der X- und Y-Achse

Entfernen Sie die schwarzen Linien der x- und y-Achse mit matplotlib

Bestimmen Sie die Größe der Matplotlib-Achse in Pixel

So verschieben und verwalten Sie die Überlappung von x-Ticks mit der Achse in Gnuplot

Ändern Sie die Reihenfolge der Werte der y-Achse

ggplot - Ändern Sie die Beschriftung der y-Achse und skalieren Sie sie manuell

Suchen Sie einen Wert von der x-Achse, der der y-Achse in matplotlib python entspricht

Ändern Sie den Schritt der X-Achse in Python matplotlib

Vermeiden Sie das Sortieren in der X-Achse in Matplotlib und zeichnen Sie die gemeinsame X-Achse mit mehreren Y-Achsen

So ändern Sie die Skalierung der y-Achse in der R-Boxplot-Funktion

So ändern Sie die Reihenfolge der kategorialen Werte auf der y-Achse eines Diagramms

So ändern Sie die Ausrichtung der Achse in eine Richtung, die durch das Tupel in matplotlib angegeben wird

So verbergen Sie die Linie und Beschriftung der y-Achse und der x-Achse in meinem Balkendiagramm für chart.js

So ändern Sie den Text der Highcharts-X-Achse

Ändern Sie die Häkchen der y-Achse in Python

Ändern Sie die Skala der Y-Achse in ggplot

Ändern Sie die x-Achse des Datums von Tag zu Monat in der Matplotlib des gruppierten Balkendiagramms

Ändern Sie nur die Farbe der unteren X-Achse

Ändern Sie die Position der x-Achse

Ändern Sie die Häkchenbezeichnung der x-Achse

Python - Ändern Sie die x-Achse mithilfe der Datenrahmenspalte

Ändern Sie die Beschriftung der x-Achse R.

Ändern Sie die Schritte der x-Achse in R.

ggplot2 und gganimate: So ändern Sie die Farben einer animierten Linie in Abhängigkeit von den Werten der Y-Achse

TOP Liste

  1. 1

    Modbus Python Schneider PM5300

  2. 2

    Glassfish v3.0.1 im Vergleich zu Oracle GlassFish Server 3.0.1 - Gibt es einen technischen Grund, die kommerzielle Version zu verwenden?

  3. 3

    Wie schließe ich mehrere Ordner mit der Variablen EXTRA_ARGS aus?

  4. 4

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

  5. 5

    Wie kann man eine Multi-Container-Anwendung in Steuerkarten erstellen?

  6. 6

    ElasticSearch - Knotensperren konnten nicht abgerufen werden

  7. 7

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  8. 8

    Elasticsearch startet nicht nach dem Laden in viele Daten

  9. 9

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  10. 10

    Wie Verwenden von Httpclient mit jedem SSL-Zertifikat, egal wie „schlecht“ es ist

  11. 11

    Wie vergleicht man scala.xml-Knoten richtig?

  12. 12

    ElasticSeach Auto Complete mit dem Vervollständigungsvorschlag, um das vollständige Dokument zurückzugeben

  13. 13

    Wie füge ich eine Spalte in einer Zeile in der Ansible Jinja2-Vorlage mit der for-Schleife hinzu?

  14. 14

    HTTPS-Verbindung mit Moneris-Servern in Curl

  15. 15

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  16. 16

    Bester Crawler, um festzustellen, ob er mit Technologien gebaut wurde?

  17. 17

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  18. 18

    Wie kann ich den Kaskadenmodus global einstellen?

  19. 19

    Eclipse Oxygen - Projekte verschwinden

  20. 20

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  21. 21

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

heißlabel

Archiv