Usando matplotlib, há uma maneira de criar gráficos 2D simples de desigualdades básicas [duplicar]

Sep 12 2020

Como se pode criar um gráfico simples e bidimensional de uma desigualdade básica. O resultado é uma linha numerada com uma ou duas linhas sobrepostas. A linha ou linhas começariam ou terminariam com uma seta, um círculo preenchido ou um círculo aberto.

Respostas

2 JohanC Sep 12 2020 at 04:22

Algumas técnicas que você pode usar:

  • crie um gráfico, definindo o eixo x no centro, esconda todas as outras espinhas
  • use plotagens de linha para criar as linhas e as setas
  • definir os xticks 'inout' e torná-los mais longos
  • use marcadores preenchidos para o ponto especial; a cor de preenchimento pode ser branca ou turquesa, dado um efeito vazio versus preenchido
  • defina os zorders para que as linhas fiquem no topo do eixo x
  • se você quiser vários desses eixos, use plt.subplots(nrows=...), configurando o de figsizeacordo

Aqui está um código para você começar.

import matplotlib.pyplot as plt

fig, ax = plt.subplots(nrows=1)
x0 = -5
x1 = 5
p = 3
ax.set_ylim(-1, 1)
ax.set_xlim(x0 - 0.4, x1 + 0.4)
ax.set_xticks(range(x0, x1 + 1))
ax.set_yticks([])
ax.tick_params(axis='x', direction='inout', length=10)
ax.spines['bottom'].set_position('zero')
ax.spines['bottom'].set_zorder(0)
for dir in ['left', 'right', 'top']:
    ax.spines[dir].set_visible(False)
ax.plot([x0 - 0.4, p], [0, 0], color='turquoise', lw=1)
ax.plot([x0 - 0.2, x0 - 0.4, x0 - 0.2], [0.2, 0, -0.2], color='turquoise', lw=1)
ax.plot([x1 + 0.2, x1 + 0.4, x1 + 0.2], [0.2, 0, -0.2], color='black', lw=1)
ax.plot(p, 0, linestyle='', marker='o', fillstyle='full', markerfacecolor='white', markeredgecolor='turquoise',
        markersize=5, lw=2, zorder=3)
ax.set_aspect('equal')
plt.show()

jmh Sep 12 2020 at 04:38

Sim existe. Adicione matplotlib à sua distribuição Python e importe-o em seu código. Eu geralmente uso o seguinte ao importá-lo. import matplotlib.pyplot as plt. Then I can use the following line also in my python code: plt.plot (x, y) `Isso lhe dará um gráfico x, y simples dos valores que você definiu.

Na linha import matplotlib.pyplot as plt, estou carregando maplotlib como plt. Isso permite que você se refira a ele como plt. O eixo x pode ser definido pelo usuário como um conjunto de valores ou você pode gerar os valores x usando algo como x = np.linspace(0, 20, 200)onde linspace é uma função para gerar pontos igualmente espaçados. 0 e 20 referem-se aos valores xmin e xmax, enquanto 200 é o número de valores x gerados.

você também pode simplesmente fazer

x = (1,3,5,9,11,13)
y = (1,9,25,81,121,169)

e plt.plot (x, y)