scatter plot и plot -- Какая разница между графиками

Ответ:

Cущественная разница в том, что для одной и той же математической функции:

  • scatter plot (диаграмма рассеяния) -- отображает отдельные точки для того же графика,
  • а plot -- объединяет и значения функции в непрерывную линию

Вопрос:

правильно ли я понимаю, что "scatter plot" "диаграмма расеяния" и "комплексная плоскость" это одно и то же? Если нет, то что в русском соответствует "scatter plot" и чем такая плоскость отличается от обычного plot графика? т.е. такой https://matplotlib.org/devdocs/api/_as_g... вот от этого https://matplotlib.org/api/_as_gen/matpl...

Key Words for FKN + antitotal forum (CS VSU):

moberaptor's picture

plot, просто plot

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 2.0, 0.1)
s = 1 + np.sin(2*np.pi*t)

plt.plot(t, s)

plt.xlabel('time')
plt.ylabel('value')
plt.title('works fine - line')
plt.grid(True)

plt.savefig("test_plot_line.png")
plt.show()

https://imgur.com/a/J05xw

просим plot ничего не соединять

plt.plot(t, s, 'o')

plt.xlabel('time')
plt.ylabel('value')
plt.title('works fine - dot')
plt.grid(True)
plt.savefig("test_plot_dot.png")
plt.show()

https://imgur.com/WoxYRbs

plot притворяется, что он scatter plot

import matplotlib.path as mpath
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
Path = mpath.Path
path_data = [
    (Path.MOVETO, (1.58, -2.57)),
    (Path.CURVE4, (0.35, -1.1)),
    (Path.CURVE4, (-1.75, 2.0)),
    (Path.CURVE4, (0.375, 2.0)),
    (Path.LINETO, (0.85, 1.15)),
    (Path.CURVE4, (2.2, 3.2)),
    (Path.CURVE4, (3, 0.05)),
    (Path.CURVE4, (2.0, -0.5)),
    (Path.CLOSEPOLY, (1.58, -2.57)),
    ]
codes, verts = zip(*path_data)
path = mpath.Path(verts, codes)
x, y = zip(*path.vertices)
line, = ax.plot(x, y, 'go-')
ax.grid()
ax.axis('equal')
plt.title('works fine - dots and lines')
plt.savefig("dots_and_lines.png")
plt.show()

https://imgur.com/ewHZGyH

vedro-compota's picture

спасибо)

_____________
матфак вгу и остальная классика =)

moberaptor's picture

scatter plot показывает не точки, а области, ...

import numpy as np
import matplotlib.pyplot as plt
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2
plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.savefig("area.png")
plt.show()

https://imgur.com/yaSac0e

векторное поле, ...

import matplotlib.pyplot as plt
import numpy as np
X, Y = np.meshgrid(np.arange(0, 2 * np.pi, .2), np.arange(0, 2 * np.pi, .2))
U = np.cos(X)
V = np.sin(Y)
plt.figure()
plt.title("some vectors for lectors")
M = np.hypot(U, V)
Q = plt.quiver(X, Y, U, V, M, units='x', pivot='tip', width=0.022,
               scale=1 / 0.15)
qk = plt.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
plt.scatter(X, Y, color='k', s=5)
plt.savefig("field.png")
plt.show()

https://imgur.com/Q89VebC

клевер...

from matplotlib import pyplot as plt
import numpy as np
np.random.seed(19680801)
x = np.arange(0.0, 50.0, 2.0)
y = x ** 1.3 + np.random.rand(*x.shape) * 30.0
s = np.random.rand(*x.shape) * 800 + 500
plt.scatter(x, y, s, c="g", alpha=0.5, marker=r'$\clubsuit$',
            label="Luck")
plt.xlabel("Funny")
plt.ylabel("Gold")
plt.legend(loc=2)
plt.savefig("luck.png")
plt.show()

https://imgur.com/Na17qkk

moberaptor's picture

По моему скромному мнению, это две очень похожих функции и при желании можно обойтись любой из них. Их отличие, как мне думается, заключается в том, что в одной ситуации удобнее использовать одну, а в другой другую.

Всем бобра и светлых мыслей!
Всем бобра!