В дополнение к hist2d
или hexbin
, как @askewchan предложил, вы можете использовать тот же метод, что принятый ответ на вопрос, который вы связаны с использований ,
Если вы хотите сделать это:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
# Generate fake data
x = np.random.normal(size=1000)
y = x * 3 + np.random.normal(size=1000)
# Calculate the point density
xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)
fig, ax = plt.subplots()
ax.scatter(x, y, c=z, s=100, edgecolor='')
plt.show()
Если вы хотите пункты, которые будут нанесены в порядке плотности, так что плотнейшие точки всегда на вершине (по аналогии с связанный пример), просто отсортируйте их по значениям z. Я также буду использовать меньший размер маркера здесь, как это выглядит немного лучше:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
# Generate fake data
x = np.random.normal(size=1000)
y = x * 3 + np.random.normal(size=1000)
# Calculate the point density
xy = np.vstack([x,y])
z = gaussian_kde(xy)(xy)
# Sort the points by density, so that the densest points are plotted last
idx = z.argsort()
x, y, z = x[idx], y[idx], z[idx]
fig, ax = plt.subplots()
ax.scatter(x, y, c=z, s=50, edgecolor='')
plt.show()
Привет! Люди, вероятно, задерживают вас, потому что вы не переписываете вопрос или не даете никакого контекста, и вы не пытались сделать это сами. Попробуйте отредактировать вопрос как самодостаточный (а не только ссылку), и для будущих вопросов, пожалуйста, сделайте некоторую попытку до публикации. – askewchan