Mit gleichen Daten Linien-Diagram läuft und Balken-Diagramm nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
criptoivan
User
Beiträge: 9
Registriert: Freitag 15. Dezember 2017, 01:14

Hi,
ich möchte Balkendiagramm erzeugen. Statt mehrere Balken bekomme ich ein grosses Rechteck. Und Liniendiagramm mit gleichen Daten funktioniert ganz gut.

Hat jemand Idee wo ich Fehler habe?

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.astype(float)
y = a_amount.astype(float)



fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
#ax1.plot(x,y)

ax1.bar(x,y)


plt.show()

Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@criptoivan: hier nochmal alle Anmerkungen aus dem anderen Thread im Code umgesetzt:

Code: Alles auswählen

# -*- coding: utf-8 -*-
import requests
import numpy as np
import matplotlib.pyplot as plt

URL = 'https://poloniex.com/public'

def public_method(**params):
    """
    holt die daten aus Poloniex. Typ dict
    Variablen für Funktion:
      command='returnLoanOrders', currency='LTC' -> gibt daten von Verleiverlauf für LTC
    """
    result = requests.get(URL, params=params)
    return result.json()

# Verlei-Daten aus Poloniex rausholen
date_lean_ltc = public_method(command='returnLoanOrders', currency='LTC')
offers = date_lean_ltc['offers']

rate = []
amount = []
range_min = []
range_max = []

for offer in offers:
    print(offer)
    rate.append(offer['rate'])
    amount.append(offer['amount'])
    range_min.append(offer['rangeMin'])
    range_max.append(offer['rangeMax'])

rate = np.array(rate, dtype=float)
amount = np.array(amount, dtype=float)
range_min = np.array(range_min, dtype=float)
range_max = np.array(range_max, dtype=float)

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
#ax1.plot(rate, amount)
ax1.bar(rate, amount)
plt.show()
criptoivan
User
Beiträge: 9
Registriert: Freitag 15. Dezember 2017, 01:14

Vielen Danke,
jetzt verstehe ich was gemeint wurde. Sieht ordentlich aus.

Hast du Idee warum Balken-Diagramm nicht richtig läuft?
criptoivan
User
Beiträge: 9
Registriert: Freitag 15. Dezember 2017, 01:14

Noch eine Frage:

Wie kann ich sehen welche URL hier result = requests.get(URL, params=params) in Klammern generiert wird.

Ich kann andere Variablen durch print() rausgeben und anschauen was ich da habe. Kann ich hier auch so was ähnliches machen?
Antworten