Pesquisa de site

Traçando pontos aleatórios sob a curva senoidal em Python Matplotlib


Traçar pontos aleatórios sob uma curva senoidal é um exercício visual fascinante que demonstra a versatilidade do Matplotlib em Python. Ao gerar pontos aleatórios e deslocá-los ao longo do eixo y, podemos criar um gráfico de dispersão que parece seguir o formato de uma onda senoidal.

Este artigo se aprofunda no processo de geração desses pontos aleatórios, calculando suas coordenadas y correspondentes usando a função seno e visualizando os resultados usando Matplotlib. Obteremos uma compreensão mais profunda de como aproveitar os recursos de plotagem do Matplotlib para criar visualizações envolventes e dinâmicas.

Como traçar pontos aleatórios sob uma curva senoidal em Python Matplotlib?

Abaixo está a explicação passo a passo completa do programa que veremos na próxima seção -

  • Importe as bibliotecas necessárias -

    • numpy é importado para gerar números aleatórios e realizar cálculos matemáticos.

    • matplotlib.pyplot é importado para criar gráficos e visualizações.

  • Defina o número de pontos aleatórios -

    • A variável num_points é definida como o número desejado de pontos aleatórios a serem gerados.

  • Gere coordenadas x aleatórias -

    • np.random.uniform(0, 2 * np.pi, num_points) gera uma matriz de num_points valores aleatórios entre 0 e 2π (inclusive). Esses valores servirão como coordenadas x para os pontos.

  • Calcule as coordenadas y usando a função seno -

    • np.sin(x) calcula os valores dos senos das coordenadas x geradas na etapa anterior. Isto nos dá as coordenadas y para os pontos situados na curva senoidal.

  • Gere deslocamentos aleatórios para as coordenadas y -

    • np.random.uniform(-0.5, 0.5, num_points) gera uma matriz de valores aleatórios entre -0,5 e 0,5. Esses valores serão usados para compensar as coordenadas y, espalhando os pontos ao redor da curva senoidal.

  • Adicione deslocamentos às coordenadas y -

    • y += offsets adiciona os deslocamentos aleatórios às coordenadas y geradas na etapa 4, criando uma distribuição dispersa de pontos ao redor da curva senoidal.

  • Trace os pontos -

    • plt.scatter(x, y, color='blue', s=10) cria um gráfico de dispersão dos pontos aleatórios. As coordenadas x são fornecidas pela matriz x, as coordenadas y são fornecidas pela matriz y, a cor dos pontos é definida como azul e o tamanho dos pontos é definido como 10.

  • Trace a curva senoidal -

    • x_vals=np.linspace(0, 2 * np.pi, 100) gera 100 valores uniformemente espaçados entre 0 e 2π. Esses valores serão usados como coordenadas x para traçar a curva senoidal.

    • y_vals=np.sin(x_vals) calcula os valores seno das coordenadas x geradas acima, fornecendo as coordenadas y para a curva senoidal.

    • plt.plot(x_vals, y_vals, color='red') traça a curva senoidal usando as coordenadas x x_vals e as coordenadas y y_vals. A cor da curva está definida como vermelho.

  • Defina os limites do eixo xey -

    • plt.xlim(0, 2 * np.pi) define os limites do eixo x para abranger de 0 a 2π.

    • plt.ylim(-1.5, 1.5) define os limites do eixo y para abranger de -1,5 a 1,5.

  • Definir rótulos e título -

    • plt.xlabel('x') define o rótulo do eixo x como 'x'.

    • plt.ylabel('y') define o rótulo do eixo y como 'y'.

    • plt.title('Random Points under Sine Curve') define o título do gráfico como 'Random Points under Sine Curve'.

  • Exibir o gráfico -

    • plt.show() exibe o gráfico com todos os elementos especificados (pontos, curva senoidal, rótulos e título).

Exemplo

Abaixo está o exemplo do programa usando as etapas acima.

import numpy as np
import matplotlib.pyplot as plt

# Number of random points to generate
num_points = 100

# Generate random x-coordinates between 0 and 2*pi
x = np.random.uniform(0, 2 * np.pi, num_points)

# Compute corresponding y-coordinates using the sine function
y = np.sin(x)

# Generate random offsets for the y-coordinates
offsets = np.random.uniform(-0.5, 0.5, num_points)

# Add offsets to the y-coordinates
y += offsets

# Plot the points
plt.scatter(x, y, color='blue', s=10)

# Plot the sine curve
x_vals = np.linspace(0, 2 * np.pi, 100)
y_vals = np.sin(x_vals)
plt.plot(x_vals, y_vals, color='red')

# Set the x-axis and y-axis limits
plt.xlim(0, 2 * np.pi)
plt.ylim(-1.5, 1.5)

# Set labels and title
plt.xlabel('x')
plt.ylabel('y')
plt.title('Random Points under Sine Curve')

# Display the plot
plt.show()

Saída

Conclusão

Aproveitando o poder da biblioteca Matplotlib do Python, demonstramos com sucesso como plotar pontos aleatórios sob uma curva senoidal. Este artigo destaca a versatilidade e flexibilidade do Matplotlib na criação de visualizações cativantes. Através da geração de pontos aleatórios e seu posicionamento estratégico ao longo do eixo y, podemos observar o surgimento de um padrão senoidal.

Artigos relacionados: