[Experiencia inicial de Python] Informe experimental de introducción de sistema electrónico de dibujo de biblioteca de funciones de Matplotlib

[Experiencia inicial de Python] Informe experimental de introducción de sistema electrónico de dibujo de biblioteca de funciones de Matplotlib

1930713XXXX Nie XX Clase experimental de ciencias técnicas

1. El propósito del experimento:

  • Familiarizado con la sintaxis básica de Python.

  • Familiarizado con las funciones de la biblioteca Matplotlib para dibujar curvas.

2. Contenido experimental:

  • Obtenga datos sobre la cantidad de coronas nuevas recién diagnosticadas en todo el país desde el 1 de febrero hasta el 29 de febrero de los canales en línea y realice la programación de Python. Utilice las funciones de la biblioteca Matplotlib para dibujar la curva (el eje horizontal es la fecha, el eje vertical es el número de personas recién confirmadas), y genere el valor máximo y la fecha correspondiente, el valor mínimo y la fecha correspondiente, el valor promedio y mediano.

3. Registro del proceso del experimento:

  1. Descargue datos sobre la cantidad de personas recién diagnosticadas en todo el país en febrero. Fuente de datos: datos históricos de Zhentu 2019-nCoV

    Ingrese el número de recién diagnosticados diariamente en febrero en un archivo txt en orden de fecha: data.txt

  1. Escriba programas de Python para implementar varias funciones.
  • Imprima la oración de solicitud, ingrese los datos en y para formar una lista:
print("请输入2月1日到2月29日期间中国新冠疫情每日新增确诊人数:")
print("(29个整数,用空格隔开)")
y = input().split()

  • Teniendo en cuenta la necesidad de utilizar la función Matplotlib para graficar, se han obtenido los datos del eje y (el número de personas recién diagnosticadas por día) y se deben generar los datos correspondientes al eje x (correspondiente a la fecha):
x = np.arange('2020-02-01','2020-03-01',dtype=np.datetime64)

  • El siguiente es el dibujo. Utilice las funciones title (), xlable () y ylable () para establecer el título del gráfico y las etiquetas de los ejes. Utilice la función plot () para dibujar, donde el parámetro "-o" representa la polilínea + punto + rojo, y la etiqueta representa la etiqueta de este conjunto de datos. Dado que son datos nacionales, la etiqueta es "China". Finalmente, use la función show () para mostrar la imagen.
plt.title("Chart of the number of newly confirmed cases per day in February 2020")
plt.xlabel("Date")
plt.ylabel("Number of newly confirmed cases")

plt.plot(x,y,"-or",label="China")
plt.show()

  • Ver el efecto de dibujo:

  • A continuación, complete el procesamiento de datos máximo y mínimo, así como la posición intermedia y el valor promedio. Use una lista de pares con nombre para almacenar los datos diarios de dos tuplas: (número de diagnósticos recién confirmados, fecha), use la función sort () para ordenar el número de diagnósticos recién diagnosticados como la primera palabra clave en orden ascendente, y luego podrá acceder fácilmente a los diagnósticos recién agregados La información sobre la fecha con el mayor y el menor número de personas y el valor mediano se pueden encontrar directamente. Acumule el número total de personas a través de la variable Suma, divida por el número de días para obtener el valor promedio y mantenga un decimal para la salida.

Days = 29 
Sum = 0
i = 0

pairs = []

for dat in y:
    y[i] = int(y[i])
    Sum += y[i]
    pairs.append( (y[i],i+1) )
    i+=1
    
pairs.sort()

  • Ver los resultados de ejecución:

  • Hasta ahora, se ha implementado el contenido experimental y todo el código ( export.py ) se publica a continuación :

# -*- coding: UTF-8 -*-
# George_Plover
import numpy as np
import matplotlib.pyplot as plt


print("请输入2月1日到2月29日期间中国新冠疫情每日新增确诊人数:")
print("(29个整数,用空格隔开)")
y = input().split()

x = np.arange('2020-02-01','2020-03-01',dtype=np.datetime64)

Days = 29 
Sum = 0
i = 0

pairs = []

for dat in y:
    y[i] = int(y[i])
    Sum += y[i]
    pairs.append( (y[i],i+1) )
    i+=1
    
pairs.sort()

print("新增确诊人数最少的一天是2月",pairs[0][1],"日 新增确诊",pairs[0][0],"例。")
print("新增确诊人数最多的一天是2月",pairs[Days-1][1],"日 新增确诊",pairs[Days-1][0],"例。")
print("2月每日新增确诊人数平均值为:",round (1.0*Sum/Days , 0),"人。")
print("2月每日新增确诊人数中位值为:",pairs[Days//2][0],"人")

plt.title("Chart of the number of newly confirmed cases per day in February 2020")
plt.xlabel("Date")
plt.ylabel("Number of newly confirmed cases")

plt.plot(x,y,"-or",label="China")
plt.show()

4. Resumen y pensamiento del experimento:

Este experimento se familiarizó con éxito con la sintaxis básica de Python (oraciones de entrada y salida, lista, tupla y otras aplicaciones). Se familiarizó con éxito con algunas funciones de dibujo de la biblioteca Matplotlib.

Sin embargo, todavía hay áreas que vale la pena mejorar. Por ejemplo, la superposición de fechas aparece en la esquina inferior derecha de la imagen. Puede comprender mejor el motivo e intentar eliminar las fechas redundantes superpuestas. Además, este programa se puede mejorar para extraer automáticamente datos del sitio web oficial para generar imágenes e intentar hacer una interfaz gráfica para mejorar la experiencia interactiva.

Supongo que te gusta

Origin blog.csdn.net/George_Plover/article/details/106109202
Recomendado
Clasificación