Python散点图。标记的大小和样式

标签 python plot matplotlib scatter

我有一组数据要显示为散点图。我希望将每个点绘制为大小为 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/

相关文章:

python - 使用 numpy.genfromtxt() python 3.4 错误跳过指定数量的列

python - 如何根据相似值将一列拆分为多列

python - 如何更改绘图背景颜色?

python - 缩放不同尺寸的热图以使单元格大小相等

python - PyQt 文件对话框在主窗口之前打开

r - 在 R 中绘制密度

r - 根据值绘制带有条件颜色的折线图

python - 如何提取 pandas 数据框中的元组值以使用 matplotlib?

python - Matplotlib 西里尔文支持

python - 如何将腌制数据帧从 GCS 加载到 App Engine