Seite 1 von 1

Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 01:36
von criptoivan
Hi,
ich kann die Uhrsache nicht finden.
Die Daten auf X-Achse werden nicht in der richtigen Reihenfolge angezeigt. Die grossere Zahlen erscheinen zwischen den kleinen. Sie sollen doch automatisch aufsteigend nach rechts verschoben werden. Hat jemand eine Idee?

Leider habe ich nicht hingekriegt hier das Bild davon hochzuladen. :K


Code: Alles auswählen

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

#from config.txt import polo_key, polo_secret

import requests, json
import numpy as np

import matplotlib.pyplot as plt






def public_method(command): #holt die daten aus Poloniex. Typ dict
                            #Variablen für Funktion:
                            #returnLoanOrders&currency=LTC -> gibt daten von Verleiverlauf für LTC
                            
    url = 'https://poloniex.com/public?command={0}'.format(command)
    api = requests.get(url)
    data = json.loads(api.text)#json-Format in python-dict konvertieren
    
    return data




Date_Lean_LTC = public_method('returnLoanOrders&currency=LTC')# Verlei-Daten aus Poloniex rausholen
    

first_key = list(Date_Lean_LTC)[0]
#print(first_key)
first_list = Date_Lean_LTC[first_key]
#print(first_list)
#print(first_list[0]['rate'])


a_rate = []
a_amount = []
a_rangeMin = []
a_rangeMax = []

for second_dict in first_list:
    #print(second_dict)
    print(second_dict['rate'], second_dict['amount'], second_dict['rangeMin'], second_dict['rangeMax'])
    
    a_rate = np.append(a_rate, second_dict['rate'])
    a_amount = np.append(a_amount, second_dict['amount'])
    a_rangeMin = np.append(a_rangeMin, second_dict['rangeMin'])
    a_rangeMax = np.append(a_rangeMax, second_dict['rangeMax'])



x = a_rate
y = a_amount

plt.xticks(rotation='vertical')
plt.subplots_adjust(bottom=0.25,left=0.2)#Graph in der Fenster ausrichten

plt.bar(y,x)
plt.show()


Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 08:26
von Sirius3
@criptoivan: `requests` kennt eine `json`-Methode, die Parameter der URL sollten auch als Parameter an requests übergeben werden, damit Sonderzeichen richtig behandelt werden. Der Variablenname `Date_Lean_LTC` hält sich nicht an die Namenskonvention. Wenn Du die Werte zu `offers` willst, nutze den Key und hoffe nicht, dass das erste Element eines unsortierten Wörterbuchs zufälligerweise richtig ist. `first_list` sollte dementsprechend auch `offers` heißen. Das Präfix `a_` ist so überflüssig, wie `second_dict` irgendeine Aussagekraft hat (von was das zweite, geht eine for-Schleife nicht alle Elemente durch)? np.append ist hier die falsche Methode. Du willst Listen verwenden. Warum nennst Du a_rate und a_amount in x und y um?

Für mich sind in den Listen Strings statt Zahlen, so dass das ganze Plotten gar nicht funktioniert.

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 11:45
von criptoivan
Hi,
Danke für die schnelle Antwort.
Ich habe mit programmieren vor Par Wochen angefangen. Dacher kenne ich die ganze Vorgehensweise und Regeln beim Programmieren nicht. Bitte sag mir nicht nur wo falsch gemacht ist sondern auch wie es richtig aussehen soll.
Hast du Script gestartet? Ist bei dir die Reihenfolge auch falsch? Vielleicht steckt Problem bei Spyder-Einstellungen oder Python-Version?

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 11:50
von Sirius3
@criptoivan: ich habe immer dazu geschrieben, wie es richtig sein sollte. Was verstehst Du daran nicht?

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 12:05
von criptoivan
Namenskonvention Beim Python. Wie sieh es richtig aus?
Und das erklärt falsche Reihenfolge nicht

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 12:20
von narpfel
@criptoivan: Die Namenskonventionen findet man in PEP 8. Zur Reihenfolge: Sirius3 hat geschrieben, dass `x` und `y` bei ihm Strings enthalten. Welchen Typ haben die Elemente bei dir? Wenn man versucht, Strings zu plotten, sortiert `matplotlib` die Werte lexikographisch, das könnte also zu deinem Fehlerbild passen.

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 12:26
von criptoivan
Stimmt, das kann sein. Ich probiere alles mit Int() umwandeln

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 12:35
von narpfel
@criptoivan: `numpy`-Arrays haben eine `astype`-Methode.

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 12:46
von criptoivan
Supper, hat funktioniert.
Ich habe nur das gemacht und es macht was ich will.

Code: Alles auswählen


x = a_rate.astype(float)
y = a_amount.astype(float)

Vielen Dank.
Ich habe gestern 4 Stunden damit gekämpft. :lol:

Ich habe noch eine Frage:

Man bekommt die Methoden aus Bibliotheken. Wie und wo kann ich überblick über ganzen Bibliotheken bekommen? Und wie ich die richtige Methode raussuchen kann? Wie orientiert man sich?

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Freitag 15. Dezember 2017, 13:01
von narpfel
@criptoivan: Die Dokumentation der Bibliothek beschreibt üblicherweise alles, was eine Bibliothek kann. Bei Fragen zu Python direkt dann die Python-Dokumentation.

Falls du wissen möchtest, was für Bibliotheken es gibt: Quasi alle Python-Bibliotheken sind im Cheeseshop gelistet, und dann gibt es auch noch Awesome Python.

Ansonsten: Die Suchmaschine deiner Wahl mit den richtigen Suchbegriffen füttern. :wink:

Re: Plot gibt die Daten mit falscher Reihenfolge wieder

Verfasst: Samstag 16. Dezember 2017, 17:22
von criptoivan
Danke Jungs,
jetzt kann ich weiter lernen