es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer un gráfico/diagrama a partir de un archivo CSV en Python?

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown:
Esta es mi primera vez haciendo una pregunta en este foro, espero no hacer un tonto de mí mismo.
Soy un estudiante de educación en TI y hoy me introdujeron brevemente a las bibliotecas CSV y Matplotlib.
La tarea consistía en hacer un gráfico / diagrama de las temperaturas máximas y mínimas y las fechas correspondientes en este archivo CSV. Necesito los números de fila y necesito que el programa comprenda el formato / sintaxis correcta de las celdas, pero realmente no estoy seguro de cómo hacerlo.

Ejemplo de archivo CSV aquí:
“ESTACIÓN”, “NOMBRE”, “FECHA”, “PRCP”, “TMAX”, “TMIN”, “TOBS”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-01”, “0.00”, “65”, “34”, “42”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-02”, “0.00”, “61”, “38”, “46”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-03”, “0.00”, “69”, “34”, “54”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-04”, “0.00”, “69”, “39”, “48”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-05”, “0.00”, “74”, “40”, “57”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-06”, “0.00”, “74”, “47”, “65”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-07”, “0.00”, “77”, “54”, “60”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-08”, “0.07”, “62”, “52”, “52”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-09”, “0.40”, “60”, “51”, “51”
“USC00042319”, “DEATH VALLEY, CA US”, “2018-01-10”, “0.00”, “64”, “49”, “50”

Esto es lo que tengo:

import csv
import matplotlib.pyplot as plt

filename = 'deathvalley2018simple.csv'
with open(filename) as f:
    csvreader = csv.reader(f, delimiter=',')
    line_count = 0

for row in f:
    x=(row[4], row[5])
    y=(row[2])
    print(row[2])
    print(row[4])
    print(row[5])


plt.bar(x,y)
plt.xticks(y)
plt.ylabel('Fechas')
plt.title('Gráfico')
plt.show()

El resultado es este “gráfico de barras”.

Leí otros mensajes del foro de aquí, pregunté en Discord y leí la documentación de CSV. Tal vez la respuesta esté allí, pero si no lo comprendo bien.
Espero que alguien me explique esto como si tuviera 5 años.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que está tratando de crear un gráfico de barras utilizando los datos del archivo CSV. Para hacer esto, puede usar las bibliotecas csv y matplotlib.

    Primero, debe leer el archivo CSV y almacenar los datos en variables. Puede utilizar la función csv.reader() para leer el archivo y almacenar los datos en una lista. Luego, puede usar la función matplotlib.pyplot.bar() para crear el gráfico de barras. También puede utilizar las funciones matplotlib.pyplot.xticks() y matplotlib.pyplot.ylabel() para etiquetar el eje x e y del gráfico.

    Aquí hay un ejemplo de cómo puede crear el gráfico de barras:

    import csv
    import matplotlib.pyplot as plt
    
    nombre_archivo = 'death_valley_2018_simple.csv'
    with open(nombre_archivo) as f:
        lector_csv = csv.reader(f, delimiter=',')
        cuenta_linea = 0
    
    for fila in f:
        x = (fila[4], fila[5])
        y = (fila[2])
        print(fila[2])
        print(fila[4])
        print(fila[5])
    
    plt.bar(x, y)
    plt.xticks(y)
    plt.ylabel('Fechas')
    plt.title('Gráfico')
    plt.show()
    

    El resultado debería verse así:

    gráfico de barras

    ¡Espero que esto ayude!

Comments are closed.