Круг не отображается в Python Matplotlib - PullRequest
1 голос
/ 01 апреля 2019

Круг не появляется.У меня есть класс "Circle" с некоторыми методами внутри, как вы можете видеть в моем коде.

У меня нет проблем с методами get_area и get_perimeter.Но я получил сообщение о том, что "plot () получил неожиданный аргумент ключевого слова 'ec'".


class Circle:
    from shapely.geometry import Point

    def __init__(self, c1, c2, radius, name):

        self.name = name
        self.c1 = c1
        self.c2 = c2
        self.radius = radius

    def get_area(self):

        PI = 3.142
        return PI * (self.radius * self.radius)

    def get_perimeter(self):

        PI = 3.142
        perimeter = 2 * PI * self.radius
        return perimeter

    def plot(self):

        circle = plt.Circle((self.c1, self.c2), self.radius)
        return circle

import matplotlib.pyplot as plt
from descartes import PolygonPatch

newcircle = Circle(0,0,1,'Wonderful')
fig = plt.figure(1,figsize=(16,10))
ax = fig.add_subplot(111)
newcircle.plot(ax,ec="#ff0000",drawlabel=True)

Я ожидаю, что он построит идеальный круг на оси.Благодарю, если вы, ребята, могли бы помочь мне в этом.

Спасибо.

1 Ответ

0 голосов
/ 01 апреля 2019

Исходя из вашего последнего ответа, я думаю, что следующий код решит ваши проблемы:

from math import pi

import numpy as np
from matplotlib.patches import Polygon
from shapely.geometry import Point


class Circle(Point):
    def __init__(self, c1, c2, radius, name, *args, **kwargs):
        super().__init__(c1, c2)
        self.name = name
        self.radius = radius

    def get_area(self):
        return pi * self.radius ** 2

    def get_perimeter(self):
        return 2 * pi * self.radius

    def plot(self):
        polygon = self.buffer(self.radius)
        return Polygon(np.array(polygon.exterior))


circle = Circle(0, 0, 1,'Wonderful')
fig = plt.figure(1)
ax = fig.add_subplot(111)    
ax.add_patch(circle.plot())
plt.show()

Это даст следующий график:

enter image description here

Я оставлю вас как задание, чтобы исправить ось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...