Notas de estudo de Python sexagésimo sexto dia
Gráfico de dispersão Matplotlib
Podemos usar o método scatter() em pyplot para desenhar gráficos de dispersão.
Gráfico de dispersão dispersão()
A sintaxe do método scatter() é a seguinte:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
Descrição do parâmetro:
- x, y: Matrizes do mesmo comprimento, que são os pontos de dados que estamos prestes a desenhar no gráfico de dispersão, insira os dados.
- s: O tamanho do ponto, o padrão é 20, também pode ser um array, cada parâmetro do array é o tamanho do ponto correspondente.
- c: A cor do ponto, o padrão é azul 'b', também pode ser um número de linha bidimensional RGB ou RGBA.
- marcador: estilo de ponto, pequeno círculo padrão 'o'.
- cmap: Mapa de cores, padrão Nenhum, escalar ou o nome de um mapa de cores, usado apenas quando c é uma matriz de números de ponto flutuante. Se não houver declaração, é image.cmap.
- norma: Normalizar, padrão Nenhum, o brilho dos dados está entre 0-1, usado apenas quando c é uma matriz de números de ponto flutuante.
- vmin, vmax:: Configuração de brilho, ignorada quando existe o parâmetro norm.
- alfa:: Configuração de transparência, entre 0-1, padrão Nenhum, que é opaco.
- linewidths::O comprimento do ponto marcado.
- edgecolors:: Cor ou sequência de cores, o padrão é 'face', os valores opcionais são 'face', 'none', None.
- plotnonfinite: valor booleano, define se deve usar c não finito (inf, -inf ou nan) para plotar pontos.
- **kwargs:: Outros parâmetros.
O exemplo de função scatter() a seguir recebe argumentos de array do mesmo comprimento, um para os valores no eixo x e outro para os valores no eixo y:
# 实例 1
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
plt.scatter(x, y)
plt.show()
Definir tamanho do ícone
# 实例 2
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.scatter(x, y, s=sizes)
plt.show()
Cor de ponto personalizada
# 实例 3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])
plt.scatter(x, y, c=colors)
plt.show()
Configure dois conjuntos de gráficos de dispersão
# 实例 4
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')
plt.show()
Use números aleatórios para configurar um gráfico de dispersão
# 实例 5
import numpy as np
import matplotlib.pyplot as plt
# 随机数生成器的种子
np.random.seed(19680801)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2 # 0 to 15 point radii
plt.scatter(x, y, s=area, c=colors, alpha=0.5) # 设置颜色及透明度
plt.title("RUNOOB Scatter Test") # 设置标题
plt.show()
Barra de coresMapa de cores
O módulo Matplotlib fornece muitas barras de cores disponíveis.
Uma barra de cores é como uma lista de cores, onde cada cor possui um valor que varia de 0 a 100.
Aqui está um exemplo de barra de cores:
Para definir a barra de cores, você precisa usar o parâmetro cmap. O valor padrão é 'viridis' e, em seguida, o valor da cor é definido como uma matriz de 0 a 100.
# 实例 6
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.show()
Se quiser exibir a barra de cores, você precisa usar o método plt.colorbar():
# 实例 7
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.colorbar()
plt.show()
Altere os parâmetros da barra de cores e defina cmap como afmhot_r:
# 实例 8
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='afmhot_r')
plt.colorbar()
plt.show()
Os valores dos parâmetros da barra de cores podem ser os seguintes:
nome da cor | palavras-chave reservadas |
---|---|
Sotaque | Acento_r |
Blues | Azul_r |
BRBG | BrBG_r |
hoje | BuGn_r |
BuPu | BuPu_r |
Mapa CMR | CMRmap_r |
Escuro2 | Escuro2_r |
GnBu | GnBu_r |
Verdes | Verdes_r |
Cinzas | Greys_r |
OuRd | OuRd_r |
Laranjas | Laranjas_r |
PRGn | PRGn_r |
Emparelhado | Emparelhado_r |
Pastel1 | Pastel1_r |
Pastel2 | Pastel2_r |
PiYG | PiYG_r |
bar | PuBu_r |
PuBuGn | PuBuGn_r |
PuOr | PuOr_r |
PuRd | PuRd_r |
Roxos | Roxos_r |
RdBu | RdBu_r |
RdGy | RdGy_r |
RdPu | RdPu_r |
RdYlBu | RdYlBu_r |
RdYlGn | RdYlGn_r |
Vermelhos | Vermelhos_r |
Conjunto1 | Conjunto1_r |
Conjunto 2 | Conjunto2_r |
Conjunto3 | Conjunto3_r |
Espectral | Espectral_r |
Vístia | Wistia_r |
YlGn | YlGn_r |
YlGnBu | YlGnBu_r |
YlOrBr | YlOrBr_r |
YlOrRd | YlOrRd_r |
muito quente | afmhot_r |
outono | outono_r |
binário | binário_r |
osso | osso_r |
brg | brg_r |
br | rebarba |
cidadãos | cividis_r |
legal | legal_r |
legalquente | coolwarm_r |
cobre | cobre_r |
hélice cúbica | cubohélice_r |
bandeira | bandeira_r |
essência_earth | essência_earth_r |
essência_cinza | essência_cinza_r |
essência_heat | essência_heat_r |
essência_ncar | essência_ncar_r |
essência_rainbow | essência_rainbow_r |
essência_stern | essência_stern_r |
essência_yarg | essência_juiz_r |
gnuplot | gnuplot_r |
gnuplot2 | gnuplot2_r |
gray | gray_r |
hot | hot_r |
hsv | hsv_r |
inferno | inferno_r |
jet | jet_r |
magma | magma_r |
nipy_spectral | nipy_spectral_r |
ocean | ocean_r |
pink | pink_r |
plasma | plasma_r |
prism | prism_r |
rainbow | rainbow_r |
seismic | seismic_r |
spring | spring_r |
summer | summer_r |
tab10 | tab10_r |
tab20 | tab20_r |
tab20b | tab20b_r |
tab20c | tab20c_r |
terrain | terrain_r |
twilight | twilight_r |
twilight_shifted | twilight_shifted_r |
viridis | viridis_r |
winter | winter_r |
后记
今天学习的是Python Matplotlib 散点图学会了吗。 今天学习内容总结一下:
- Matplotlib 散点图
- 散点图 scatter()
- 颜色条 Colormap