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.