【问题标题】:What kind of plot from matplotlib should I use?我应该使用 matplotlib 中的哪种绘图?
【发布时间】:2020-12-29 17:47:15
【问题描述】:

我正在使用 Python 3 进行编程,我的数据结构如下:

坐标 = [(0.15,0.25),(0.35,0.25),(0.55,0.45),(0.65,0.10),(0.15,0.25)]

这些是坐标。在每一对中,第一个数字是 x 坐标,第二个数字是 y 坐标。一些坐标会重复。我想像这样绘制这些数据:

最常见的坐标应该显示为更高强度(即更亮)的点或不同颜色的点(例如,红色表示非常频繁的坐标,蓝色表示非常不频繁的坐标)。不要担心圆形和半圆形。那是无关紧要的。是否有可以做到这一点的 matplotlib 图?散点图不起作用,因为它们不报告找到每个坐标的频率。他们只是创建了一个云。

【问题讨论】:

  • 使用 pandas 计算每个 x-y 对出现的频率,然后是 scatter plot

标签: python-3.x matplotlib


【解决方案1】:

答案是:

import matplotlib.pyplot as plt
from scipy.stats import kde
import numpy as np

xvalues = np.random.normal(loc=0.5,scale=0.01,size=50000)
yvalues = np.random.normal(loc=0.25,scale=0.1,size=50000)

nbins=300
k = kde.gaussian_kde([xvalues,yvalues])
xi, yi = np.mgrid[0:1:nbins*1j,0:1:nbins*1j]
zi = k(np.vstack([xi.flatten(),yi.flatten()]))
fig, ax = plt.subplots()
ax.pcolormesh(xi, yi, zi.reshape(xi.shape), shading='auto', cmap=plt.cm.hot)
x = np.arange(0.0,1.01,0.01,dtype=np.float64)
y = np.sqrt((0.5*0.5)-((x-0.5)*(x-0.5)))
ax.axis([0,1,0,0.55])
ax.set_ylabel('S', fontsize=16)
ax.set_xlabel('G', fontsize=16)
ax.tick_params(labelsize=12, width=3)
ax.plot(x,y,'w--')
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 2018-03-26
    相关资源
    最近更新 更多