matrices hacer graficos graficas graficar ejes coordenadas como python matplotlib plot grid label

python - hacer - Cambie el intervalo de cuadrícula y especifique las etiquetas de tilde en Matplotlib



matplotlib python 3 (1)

Hay varios problemas en tu código.

Primero los grandes:

  1. Está creando una nueva figura y un nuevo eje en cada iteración de su ciclo → ponga fig = plt.figure y ax = fig.add_subplot(1,1,1) fuera del ciclo.

  2. No use los localizadores. Llame a las funciones ax.set_xticks() y ax.grid() con las palabras clave correctas.

  3. Con plt.axes() está creando un nuevo eje nuevamente. Use ax.set_aspect(''equal'') .

Las cosas menores: no debe mezclar la sintaxis similar a plt.axis() como plt.axis() con la sintaxis objetiva. Use ax.set_xlim(a,b) y ax.set_ylim(a,b)

Este debería ser un ejemplo mínimo de trabajo:

import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1, 1, 1) # Major ticks every 20, minor ticks every 5 major_ticks = np.arange(0, 101, 20) minor_ticks = np.arange(0, 101, 5) ax.set_xticks(major_ticks) ax.set_xticks(minor_ticks, minor=True) ax.set_yticks(major_ticks) ax.set_yticks(minor_ticks, minor=True) # And a corresponding grid ax.grid(which=''both'') # Or if you want different settings for the grids: ax.grid(which=''minor'', alpha=0.2) ax.grid(which=''major'', alpha=0.5) plt.show()

La salida es esto:

Intento tramar los recuentos en parcelas cuadriculadas, pero no puedo descifrar cómo hacerlo. Quiero:

  1. Tener grillas de puntos en un intervalo de 5

  2. Tener etiquetas importantes para marcar solo cada 20

  3. Quiero que las garrapatas estén fuera de la trama.

  4. Tener "conteos" dentro de esas cuadrículas

Revisé posibles duplicados, como here y here , pero no he podido descifrarlo.

Este es mi código

import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator, FormatStrFormatter for key, value in sorted(data.items()): x = value[0][2] y = value[0][3] count = value[0][4] fig = plt.figure() ax = fig.add_subplot(111) ax.annotate(count, xy = (x, y), size = 5) # Overwrites and I only get the last data point plt.close() # Without this, I get "fail to allocate bitmap" error plt.suptitle(''Number of counts'', fontsize = 12) ax.set_xlabel(''x'') ax.set_ylabel(''y'') plt.axes().set_aspect(''equal'') plt.axis([0, 1000, 0, 1000]) # This gives an interval of 200 majorLocator = MultipleLocator(20) majorFormatter = FormatStrFormatter(''%d'') minorLocator = MultipleLocator(5) # I want minor grid to be 5 and major grid to be 20 plt.grid() filename = ''C:/Users/Owl/Desktop/Plot.png'' plt.savefig(filename, dpi = 150) plt.close()

Esto es lo que obtengo

También tengo un problema para sobrescribir los puntos de datos, con los que también estoy teniendo problemas ... ¿Alguien ME PUEDE ayudar con este problema?