Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 雷达图未在matplotlib中居中_Python_Matplotlib_Radar Chart - Fatal编程技术网

Python 雷达图未在matplotlib中居中

Python 雷达图未在matplotlib中居中,python,matplotlib,radar-chart,Python,Matplotlib,Radar Chart,我想学习雷达图是如何在matplotlib中工作的。我在线程中使用代码,但我生成的绘图没有正确居中,并且缺少轴。我已经尝试使用matplotlib 1.3.1、1.4.1和1.5.1,以防在最后的版本中发生更改 我也有同样的问题,但我发现问题出在以下部分: self.angles=np.arange(90,90+360,360.0/self.n) 所以把它改成 self.angles=np.arange(0,360,360.0/self.n) 并使用ax旋转每个ax。改为设置θ偏移(np.de

我想学习雷达图是如何在matplotlib中工作的。我在线程中使用代码,但我生成的绘图没有正确居中,并且缺少轴。我已经尝试使用matplotlib 1.3.1、1.4.1和1.5.1,以防在最后的版本中发生更改


我也有同样的问题,但我发现问题出在以下部分:

self.angles=np.arange(90,90+360,360.0/self.n)

所以把它改成

self.angles=np.arange(0,360,360.0/self.n)

并使用
ax旋转每个
ax
。改为设置θ偏移(np.deg2rad(90))

修改后的类如下所示:

# Python 3.4
# matplotlib 1.5.3
class Radar(object):
    def __init__(self, fig, titles, labels, rotation=0, rect=None):
        if rect is None:
            rect = [0.05, 0.05, 0.95, 0.95]

        self.n = len(titles)
        self.angles = np.arange(0, 360, 360.0/self.n)
        self.axes = [fig.add_axes(rect, projection="polar", label="axes%d" % i) 
                         for i in range(self.n)]

        self.ax = self.axes[0]
        self.ax.set_thetagrids(self.angles, labels=titles, fontsize=14)

        for ax in self.axes[1:]:
            ax.patch.set_visible(False)
            ax.grid("off")
            ax.xaxis.set_visible(False)

        for ax, angle, label in zip(self.axes, self.angles, labels):
            ax.set_rgrids(range(1, 6), angle=angle, labels=label)
            ax.spines["polar"].set_visible(False)
            ax.set_ylim(0, 6)
            ax.set_theta_offset(np.deg2rad(rotation))

    def plot(self, values, *args, **kw):
        angle = np.deg2rad(np.r_[self.angles, self.angles[0]])
        values = np.r_[values, values[0]]
        self.ax.plot(angle, values, *args, **kw)
注意:我已将参数
rotation=0
添加到
\uuuu init\uuuu
中,并将旋转应用到它的最后一个循环中的所有
ax


我知道这个问题已经有一段时间没有被问到了,但我想其他人会偶然发现这个问题。

我也有同样的问题,但我发现问题出在以下部分:

self.angles=np.arange(90,90+360,360.0/self.n)

所以把它改成

self.angles=np.arange(0,360,360.0/self.n)

并使用
ax旋转每个
ax
。改为设置θ偏移(np.deg2rad(90))

修改后的类如下所示:

# Python 3.4
# matplotlib 1.5.3
class Radar(object):
    def __init__(self, fig, titles, labels, rotation=0, rect=None):
        if rect is None:
            rect = [0.05, 0.05, 0.95, 0.95]

        self.n = len(titles)
        self.angles = np.arange(0, 360, 360.0/self.n)
        self.axes = [fig.add_axes(rect, projection="polar", label="axes%d" % i) 
                         for i in range(self.n)]

        self.ax = self.axes[0]
        self.ax.set_thetagrids(self.angles, labels=titles, fontsize=14)

        for ax in self.axes[1:]:
            ax.patch.set_visible(False)
            ax.grid("off")
            ax.xaxis.set_visible(False)

        for ax, angle, label in zip(self.axes, self.angles, labels):
            ax.set_rgrids(range(1, 6), angle=angle, labels=label)
            ax.spines["polar"].set_visible(False)
            ax.set_ylim(0, 6)
            ax.set_theta_offset(np.deg2rad(rotation))

    def plot(self, values, *args, **kw):
        angle = np.deg2rad(np.r_[self.angles, self.angles[0]])
        values = np.r_[values, values[0]]
        self.ax.plot(angle, values, *args, **kw)
注意:我已将参数
rotation=0
添加到
\uuuu init\uuuu
中,并将旋转应用到它的最后一个循环中的所有
ax


我知道这个问题已经有一段时间没有被问到了,但我想其他人会偶然发现这个问题。

我感谢您的反馈。我认为即使这是一篇旧帖子,也会有人在稍后出现。我感谢你的反馈。我认为,即使这是一个旧的职位,有人会来以后。