matplotlib Python:PyPlot大量的数据点

kninwzqo  于 2023-08-06  发布在  Python
关注(0)|答案(2)|浏览(119)

我有三个列表,每个列表包含向量的余弦值,每个列表有49,742个数据点。我使用了流动的基本绘图,但整个图形看起来非常混乱,我如何才能绘制出更少的混乱。如果可能的话,我喜欢用平滑的曲线来画这些。
每个列表中的数据示例:

pltfColor = [0.837, 0.98, 0.032, 0.755,....,n]

字符串
其他两个列表包含类似的数据,并且所有三个列表具有n=49742个数据点

plt.plot(pltfColor, 'r.')
plt.plot(pltEdgeColor, 'b.')
plt.plot(pltTexture, 'g.')
plt.ylabel('cosine values')
plt.yscale('log')
plt.show()


这是我目前的情节看起来像

23c0lvtd

23c0lvtd1#

由于点的密度很高,您可以通过降低不透明度来挑选聚类

plt.plot(pltfColor, 'r.', alpha=.1, mec='none')

字符串
hexbin还将绘制密度图,如@imsc所示

8e2ybdfx

8e2ybdfx2#

我没有你的数据…


的数据

import numpy as np
import matplotlib.pyplot as plt

N = 50020
x = np.arange(N)
r = np.random.rand(N)

a = 0.07 ; s = 2 ; n = 2

plt.scatter(x[::n], (0.8*np.cos(1.57*r)+0.2*np.cos(r+r+r+x/5000)**2)[::n],
    alpha=a, s=s, label='A')
plt.scatter(x[::n], abs((0.5*np.cos(1.57*r)+0.5*np.cos(r+r+r+x/1000)))[::n],
     alpha=a, s=s, label='B')
plt.scatter(x[::n], (1-(0.8*np.cos(1.57*r)+0.2*np.cos(r+r+r+x/2000)**2)[::n]),
     alpha=a, s=s, label='C')
plt.xlim((0,max(x))) ; plt.ylim((-0.12, 1.0))
for handle in plt.legend(ncol=3).legendHandles:
    handle.set_alpha(0.6)
    handle.set_sizes([72]*N)

字符串
您可以使用asn来获得您想要的东西。

相关问题