相关疑难解决方法(0)

pyplot散点图标记大小

在散点图的pyplot文档中:

matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None,
                          vmin=None, vmax=None, alpha=None, linewidths=None,
                          faceted=True, verts=None, hold=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)

标记大小

s:以磅为单位的大小^ 2.它是一个标量或与x和y长度相同的数组.

什么样的单位points^2?这是什么意思?是否s=100意味10 pixel x 10 pixel

基本上我正在尝试制作具有不同标记大小的散点图,我想弄清楚这个s数字是什么意思.

scatter matplotlib marker

318
推荐指数
5
解决办法
64万
查看次数

matplotlib - 在数据单元中展开指定宽度的行?

我的问题有点类似于这个问题,它绘制了数据坐标中给出的宽度线.让我的问题更具挑战性的是,与链接问题不同,我希望扩展的片段是随机的.

假设线段从哪里(0, 10)开始(10, 10),我希望将其扩展为宽度6.那就简单了

x = [0, 10]
y = [10, 10]
ax.fill_between(x, y - 3, y + 3)
Run Code Online (Sandbox Code Playgroud)

但是,我的线段是随机的.也就是说,它不一定沿x轴或y轴.它有一定的坡度.

线段s定义为其起点和终点的列表:[(x1, y1), (x2, y2)].

现在我希望将线段扩展到一定的宽度w.该解决方案有望用于任何方向的线段.这该怎么做?

更新: plt.plot(x, y, linewidth=6.0)无法做到这一点,因为我希望我的宽度与我的数据在同一个单位.

python matplotlib

6
推荐指数
3
解决办法
4590
查看次数

以绘图单位指定 matplotlib 散点大小

我想不使用点或像素而是使用绘图单位来指定散点大小。以下面为例:

import matplotlib.pyplot as plt
x = [0]
y = [0]
plt.scatter(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这会产生如下图:

在此输入图像描述

比如说,如果我希望标记的半径恰好为 0.002 个绘图单位,该怎么办?据我了解,该s参数表示标记大小的区域(以磅为单位)。有没有办法直接以绘图单位提供它?如果不是,从绘图单位转换为点的最佳方法是什么,以便我可以将其传递到s参数中?

我还看到了一些其他问题,建议使用 aPatchCollection并简单地绘制具有指定半径的圆。我不想使用这种方法。我想避免广泛重写现有代码,而是将s参数与plt.scatter.

编辑

我尝试使用这个问题中的代码,它显然允许您根据绘图单位控制标记大小。但是我无法真正让它适用于我的基本情况:

import matplotlib.pyplot as plt
import numpy as np


class scatter():
    def __init__(self,x,y,ax,size=1,**kwargs):
        self.n = len(x)
        self.ax = ax
        self.ax.figure.canvas.draw()
        self.size_data=size
        self.size = size
        self.sc = ax.scatter(x,y,s=self.size,**kwargs)
        self._resize()
        self.cid = ax.figure.canvas.mpl_connect('draw_event', self._resize)

    def _resize(self,event=None):
        ppd=72./self.ax.figure.dpi
        trans = self.ax.transData.transform
        s =  ((trans((1,self.size_data))-trans((0,0)))*ppd)[1]
        if s != self.size:
            self.sc.set_sizes(s**2*np.ones(self.n))
            self.size = s …
Run Code Online (Sandbox Code Playgroud)

python matplotlib scatter-plot

5
推荐指数
0
解决办法
2875
查看次数

标记大小/alpha 缩放与窗口大小/绘图/散点中的缩放

在 xy 图表上探索具有多个点的数据集时,我可以调整 alpha 和/或标记大小,以快速直观地了解这些点聚集最密集的位置。但是,当我放大或使窗口变大时,需要不同的 alpha 和/或标记大小来提供相同的视觉印象。

当我放大窗口或放大数据时,如何增加 alpha 值和/或标记大小?我在想,如果我将窗口面积加倍,我可以将标记大小加倍,和/或取 alpha 的平方根;和缩放相反。

请注意,所有点都具有相同的大小和 alpha。理想情况下,该解决方案适用于 plot(),但如果它只能使用 scatter() 完成,那也会有帮助。

matplotlib pandas

1
推荐指数
1
解决办法
1886
查看次数

标签 统计

matplotlib ×4

python ×2

marker ×1

pandas ×1

scatter ×1

scatter-plot ×1