pyplot how font change matplotlib

how - pequeños marcadores de trazado de dispersión en matplotlib son siempre negros



subplot python (4)

En respuesta a la pregunta de zwol en el comentario, mi reputación no es lo suficientemente alta como para dejar comentarios, así que esto tendrá que hacer: en el caso de que tus colores provengan de un mapa de colores (es decir, provienen de una "secuencia de valores a mapear") puede usar color = como se demuestra en lo siguiente:

from matplotlib import pyplot x = [1,5,8,9,5] y = [4,2,4,7,9] numSides = [2,3,1,1,5] cmap = pyplot.cm.get_cmap("copper_r") min, max = min(numSides), max(numSides) for i in range(len(x)): if numSides[i] >= 2: cax = pyplot.scatter(x[i], y[i], marker = ''+'', s = 100, c = numSides[i], cmap = cmap) cax.set_clim(min, max) elif numSides[i] == 1: pyplot.scatter(x[i], y[i], marker = ''.'', s = 40, color = cmap(numSides[i])) fig = pyplot.gcf() fig.set_size_inches(8.4, 6) fig.savefig(''figure_test.png'', dpi = 200) pyplot.show()

Intento usar matplotlib para hacer un diagrama de dispersión con puntos grises muy pequeños. Debido a la densidad del punto, los puntos deben ser pequeños. El problema es que los marcadores de la función scatter () parecen tener una línea y un relleno. Cuando los marcadores son pequeños, solo la línea es visible, no el relleno, y la línea no es del color correcto (siempre es negra).

Puedo obtener exactamente lo que quiero usando gnuplot: trazar ''nodos'' con puntos pt 0 lc rgb ''gris''

¿Cómo puedo hacer puntos grises muy pequeños usando matplotlib scatterplot ()?


La respuesta más simple a su pregunta es: use el parámetro color lugar del parámetro c para establecer el color del marcador completo.

Es fácil ver la diferencia cuando se comparan los resultados:

from matplotlib import pyplot as plt plt.scatter([1,2,3], [3,1,2], c=''0.8'') # marker not all gray plt.scatter([1,2,3], [3,1,2], color=''0.8'') # marker all gray

Detalles: para su caso de uso simple en el que solo desea que su marcador sea del mismo color gris, no debería preocuparse por detalles como el color de la cara o el color de borde, y si su marcador está definido como todos los bordes o algunos bordes y algunos llenan. En su lugar, solo use el parámetro de color y sepa que su marcador completo se configurará con el color único que especifique.


Si el marcador no tiene rostro (no se puede rellenar, p ''+'' Ej., ''+'' , ''x'' ), entonces el edgecolor debe configurarse en lugar de c , y lw no debe ser 0 :

scatter([1,2,3], [2,4,5], marker=''+'', edgecolor=''r'')

Lo siguiente no funcionará

scatter([1,2,3], [2,4,5], s=1, marker=''+'', facecolor=''0.5'', lw = 0)

porque el borde / línea no se mostrará, por lo que no se mostrará nada.


scatter([1,2,3], [2,4,5], s=1, facecolor=''0.5'', lw = 0)

Esto establece el marcador en 1 (s = 1), el color de la cara en gris (color de la cara = ''0.5'') y el ancho de la línea en 0 (lw = 0).