我有一组数据要显示为散点图。我希望将每个点绘制为大小为 dx
.
x = [0.5,0.1,0.3]
y = [0.2,0.7,0.8]
z = [10.,15.,12.]
dx = [0.05,0.2,0.1]
scatter(x,y,c=z,s=dx,marker='s')
问题在于 scatter 函数读取的大小 s
以点^2 为单位。我想要的是用面积为 dx^2 的正方形表示每个点,其中该面积以“真实”单位表示,即绘图单位。我希望你能明白这一点。
我还有一个问题。 scatter 函数绘制带有黑色边框的标记,如何删除此选项并且根本没有边框?
最佳答案
从用户数据坐标系转换为显示坐标系。
并使用 edgecolors='none' 绘制没有轮廓的面。
import numpy as np
fig = figure()
ax = fig.add_subplot(111)
dx_in_points = np.diff(ax.transData.transform(zip([0]*len(dx), dx)))
scatter(x,y,c=z,s=dx_in_points**2,marker='s', edgecolors='none')
关于Python散点图。标记的大小和样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081553/