1
我需要一些幫助我的代碼在python上。問題是,當我嘗試繪製條形圖時,條形圖會重疊。python酒吧重疊
import csv
import matplotlib.pyplot as plt
import random
def generate_color():
color = '#{:02x}{:02x}{:02x}'.format(*map(lambda x: random.randint(0, 255), range(3)))
return color
#Nota: a direccion de la base de datos depende de donde esta se localice, es por esto que dependiendo de la compu requiera de la modificacion de la ruta
#Se agrega el doble backslach para que funciones
with open("PIB.csv", "r") as PIB:
PIBReader=csv.reader(PIB, delimiter=';')
PIBList=[]
for row in PIBReader:
PIBList.append(row)
PIB.close()
with open("PIB_PerCapita.csv", "r") as PIBper:
PIBperReader=csv.reader(PIBper, delimiter=';')
PIBperList=[]
for row in PIBperReader:
PIBperList.append(row)
PIBper.close()
#print(PIBList)
#print(len(socreList))
#print(len(socreList[0]))
CountryList=[]
Isocode=[]
Anos=[]
for newrow in PIBList:
CountryList.append(newrow[0])
Isocode.append(newrow[1])
for a in range(2,len(PIBList[0])-1,1):
Anos.append(PIBList[0][a])
#print(CountryList)
#print(Isocode)
print ("Bienvenido al formulador de graficos del PIB y PIB percapita de la base de datos del Banco Munidal 2016")
print("Este programa funciona con los Codigo de pais de los paises.")
print()
print("Elija una de las siguientes opciones: \n 1)Desplegara una lista de paises y su Codigo de pais separado con un TAB \n 2)Deplegara un grafico, requiere conocer el Codigo de país")
print()
PrimeraEleccion=int(input("Ingrese la opcion: "))
print()
if PrimeraEleccion>2 or PrimeraEleccion<1:
print("Estas opciones no son validas, favor ejecutar el programa de nuevo y elegir una opcion real.")
if PrimeraEleccion==1:
print("Selecciono la opcion 1, la cual le desplegara el nombre de los paises de la base de datos y su Codigo de país.")
print()
print("#", end=" ")
print("Pais",end=" ")
print("Codigo de pais ",end=" ")
print()
xx=1
for prin in range(1,len(CountryList),1):
print(str(xx)+". ",end=" ")
print(CountryList[prin], end=" ")
print(Isocode[prin], end=" ")
xx=xx+1
print()
print("Si quiere obtener graficos favor correr el programa de nuevo y seleccionar la segunda opcion. Nota: Para la opcion dos se requiere del Codigo de país.")
if PrimeraEleccion==2:
lista2=[]
coldato=3
print("Selecciono la opcion 2, con esta opcion se le podran realizar graficos de lineas o de barras para los indicadores.")
print("Seleccione una de las siguientes opciones: \n 1) Realizar graficos comparando el PIB de distintos paises \n 2) Realizar graficos comparando el PIB percapita de distintos paises \n 3) Realizar un grafico comparando el PIB y el PIB percapita de un pais")
SegundaEleccion=int(input("Ingrese la opcion de lo que desea realizar: "))
if SegundaEleccion<1 or SegundaEleccion>3:
print("Esta opcion no es valida, favor correr el programa de nuevo y selecionar una opcion real.")
if SegundaEleccion==1:
print("Selecciono realizar un grafico comparativo del PIB de los paises.")
NumeroPaises=int(input("Para iniciar ingrese el numero de paises que desea comparar: "))
ListaNumeroPaises=[]
for i in range(NumeroPaises):
x=input("Ingrese uno a uno los codigos de los paises que desea graficar: ")
ListaNumeroPaises.append(x)
#print(ListaNumeroPaises)
#print(len(ListaNumeroPaises))
lista2=[]
matriz=[]
NomberPais=[]
for datos in range(len(ListaNumeroPaises)):
for datos2 in range(len(PIBList)):
if ListaNumeroPaises[datos]==PIBList[datos2][1]:
for i in range(2,len(PIBList[1])-1,1):
y=float(PIBList[datos2][i].replace(",","."))
lista2.append(y)
#print(lista2)
yy=PIBList[datos2][0]
NomberPais.append(yy)
matriz.append(lista2)
lista2=[]
#print(matriz)
print("Ahora seleccione que tipo de grafico le gustaria realizar: \n 1) De line \n 2) De barras")
TerceraEleccion=int(input("Ingrese la opcion: "))
if TerceraEleccion==1:
for i in range(len(matriz)):
plt.plot(Anos,matriz[i])
if TerceraEleccion==2:
for i in range(len(matriz)):
plt.bar(Anos,matriz[i])
plt.legend(NomberPais, loc='upper left')
plt.ylabel("PIB en miles de millones")
plt.xlabel("Años")
plt.show()
if SegundaEleccion==2:
print("Selecciono realizar un grafico comparativo del PIB per capita de los paises.")
NumeroPaises=int(input("Para iniciar ingrese el numero de paises que desea comparar: "))
ListaNumeroPaises=[]
for i in range(NumeroPaises):
x=input("Ingrese uno a uno los codigos de los paises que desea graficar: ")
ListaNumeroPaises.append(x)
#print(ListaNumeroPaises)
#print(len(ListaNumeroPaises))
lista2=[]
matriz=[]
NomberPais=[]
for datos in range(len(ListaNumeroPaises)):
for datos2 in range(len(PIBperList)):
if ListaNumeroPaises[datos]==PIBperList[datos2][1]:
for i in range(2,len(PIBperList[1])-1,1):
y=float(PIBperList[datos2][i].replace(",","."))
lista2.append(y)
#print(lista2)
yy=PIBperList[datos2][0]
NomberPais.append(yy)
matriz.append(lista2)
lista2=[]
#print(matriz)
print("Ahora seleccione que tipo de grafico le gustaria realizar: \n 1) De line \n 2) De barras")
TerceraEleccion=int(input("Ingrese la opcion: "))
if TerceraEleccion==1:
for i in range(len(matriz)):
plt.plot(Anos,matriz[i])
if TerceraEleccion==2:
var=0
width=0.15
for i in range(len(matriz)):
x_plot=range(len(matriz[i]))
plt.bar(x_plot,matriz[i])
plt.xticks(x_plot, Anos, rotation="vertical")
plt.legend(NomberPais, loc="upper left")
plt.ylabel("PIB en miles de millones")
plt.xlabel("Años")
plt.show()
很抱歉,如果代碼的某些部分是西班牙。提前感謝您的幫助。
問題是你想如何顯示它? – Julien
我需要它將酒吧分開,所以理論上它應該是酒吧每年。 – Andres