desenho Matplotlib-- (diagrama de dispersão, de histograma, desenhos de contorno, figura 3D)

1. pintura Scatter

PLT Em primeiro lugar, a primeira introdução matplotlib.pyplot abreviado, o módulo de numpy reintrodução para gerar alguns dados aleatórios. Foi 100 gera bidimensional conjunto de dados de distribuição normal padrão (média 0, variância 1) na forma de um conjunto de dados, e a imagem do conjunto de dados. Um valor cor para cada ponto é representado por T:

import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(0,1,100)   #高斯分布(均值为0,方差为1,100个样本)
Y = np.random.normal(0,1,100)   
T = np.arctan2(Y,X)    #反正切函数,返回的是弧度

plt.scatter(X,Y,s=50,c=T,alpha=.8)   #alpha为透明度

plt.xlim(-3,3)
plt.ylim(-3,3)
plt.xticks(())     #参数为空代表隐藏x轴坐标
plt.yticks(())
plt.show()

entradas de X e Y como localização, tamanho = 50, a cor é T, mapa de cores com valores padrão, a transparência é 80% alfa. o posicionamento da faixa de exibição eixo-x (3,3), e lavou-se com função XTICK () para ocultar a empatia eixo de coordenadas x, eixo-y. Resultados Como mostrado:
Aqui Insert Picture Descrição

2. Desenhar um gráfico de barras

Geração de dados 10, X é um número inteiro de 0 a 9, o símbolo Y representa os dados aleatórios distribuídos uniformemente correspondente. Usa a função plt.bar, os parâmetros X e Y,

Aqui vamos otimizar a cor e valor. Facecolor corpo provido de cor, EdgeColor definir a cor da borda para branco

Em seguida, adicionar uma coluna respectivamente acima dos valores de função plt.text, com duas casas decimais% .2f, centrado transversalmente ha = 'centro', alinhados com o va inferior longitudinal = 'inferior':

import matplotlib.pyplot as plt
import numpy as np

X = np.arange(10)
Y = (1-X/float(10))*np.random.uniform(0.5,1.0,10)   #从均匀分布中随机采样(上界、下界、样本输出数目)

plt.bar(X,Y,facecolor='pink',edgecolor='white')

for x,y in zip(X,Y):
    plt.text(x+0.05,y+0.02,'%.2f' % y,ha='center',va='bottom')
    
plt.xlim(-.5,10)
plt.ylim(0,1.0)
plt.xticks(())
plt.yticks(())
plt.show()

Aqui Insert Picture Descrição

3. A FIG contorno

Um conjunto de dados de pontos tridimensional (x, y) e o valor correspondente altura, um total de 100 pontos. valor da altura através de uma função f (x, y) gerado. x, y está no intervalo [3,3] é uniformemente distribuída 100 valor, e associar-se com cada meshgrid cada x e y cada um no plano bidimensional, a grade de tecido:

Em seguida, cor de preenchimento. função Plt.contourf utilizando a cor adicionada à lista, os parâmetros de posição são: X, Y, F (X, Y). Transparência 0,75, e F (X, Y) correspondente ao valor definido para o mapa de cores quentes para encontrar a cor correspondente.

Em seguida, Desenho do Contorno realizada. Use plt.contour função riscar. Localização parâmetros: X, Y, F (X, Y). A cor preta é seleccionado, a largura de linha de 0,5. Em que 8 representa a intensidade das linhas de contorno, aqui é dividida em 10 partes. Se for 0, a imagem é dividida em duas.

Finalmente juntar Etiqueta, controles embutidos se Etiqueta no interior da pintura online, fonte tamanho 10. E ocultar os eixos de coordenadas:

import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)
    
x = np.linspace(-3,3,100)
y = np.linspace(-3,3,100)
X,Y = np.meshgrid(x,y)

plt.contourf(X,Y,f(X,Y),6,alpha=.75,cmap=plt.cm.cool)  #添加颜色进去
C = plt.contour(X,Y,f(X,Y),6,colors='black',linewidth=.5) #画轮廓

plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())
plt.show()

Aqui Insert Picture Descrição

4.Image 图

import matplotlib.pyplot as plt
import numpy as np

a = np.arange(9).reshape((3,3))   #构造3x3矩阵
plt.imshow(a, interpolation='nearest',cmap='bone',origin='upper') #升序打印不同值的颜色
plt.colorbar(shrink=.95)  #颜色棒缩放为原来的95%

plt.xticks(())    #隐藏x坐标轴
plt.yticks(())    #隐藏y坐标轴
plt.show()

Aqui Insert Picture Descrição

5. vídeos Fig. 3D

Além disso a introdução de matplotlib, mas também adicionar um primeiro módulo adicional que executa 3D do lote, isto é, do eixo de visualização 3D eixos 3D.

Próximo alimentar valores de X e Y, e X e Y são tecidas numa rede. Cada valor da altura (X, Y) correspondente ao ponto de que calculado utilizando a seguinte função.

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D     #导入3D显示模块

fig = plt.figure()   #定义一个图像窗口
ax = Axes3D(fig)   #在窗口上添加3D坐标轴
X = np.arange(-3,3,0.1)
Y = np.arange(-3,3,0.1)
X,Y = np.meshgrid(X,Y)    #将 X 和 Y 编织成栅格
R = np.sqrt(X**2 + Y**2)    
Z = np.sin(R)    #z轴

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))  #横纵坐标跨度为1
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap=plt.get_cmap('rainbow'))   #投影到z=-2处
ax.set_zlim(-2,2)

plt.show()

Aqui Insert Picture Descrição

Ele publicou 199 artigos originais · ganhou elogios 566 · vista 20000 +

Acho que você gosta

Origin blog.csdn.net/weixin_37763870/article/details/105344164
Recomendado
Clasificación