Используя черепаху, чтобы нарисовать круговую диаграмму - PullRequest
0 голосов
/ 02 ноября 2019

Это для академического задания.

Я хочу знать, как построить круговую диаграмму, используя черепаху. Контекст представляет собой круговую диаграмму, которая отображает процент населения континента. У меня 2 словаря;один, который имеет совокупную численность населения для каждого континента, т.е. Азии, Европы и т. д., а другой - с ценностями, разбитыми по странам.

# dictionary of continental population for 2018
pop2018 = {
    'Asia': 0,
    'North America': 0,
    'South America': 0,
    'Africa': 0,
    'Europe': 0,
    'Oceania': 0
}

# dictionary of each asian country's population for 2018
asia2018={}

for i in l1:
    i[6] = i[6].strip()
    if i[6] == 'Asia':
        pop2018['Asia'] += int(i[1])
        pop2019['Asia'] += int(i[2])
        countries['Asia'].append(i[0])
        asia2018[i[0]] = int(i[1])
        asia2019[i[0]] = int(i[2])

Как мне это сделать? Я уже импортировал черепаху и хотел бы определить функцию для этого, чтобы я мог сделать это для всех других континентов. Я также хочу быть в состоянии заполнить цвета также. Я думаю о том, чтобы метки были ключом словаря, а размер кусочков определялся значением ключа. И я понятия не имею, как это сделать.

Они не учили нас, как использовать черепаху, и ожидали, что мы сами ее найдем. Как будто у нас нет других модулей, чтобы заботиться о D:

РЕДАКТИРОВАТЬ

def pie(dict1, dict2):
    '''
    dict1 = total population 
    dict2 = countries in continent
    '''
    radius = 200
    percentages = []
    rollingpercent = 0
    penup()
    forward(radius)
    left(90)
    pendown()
    color('palegreen')
    begin_fill()
    circle(radius)
    end_fill()
    home()
    right(90)
    color('black')
    for p in dict2:
        a = float(dict2[p]/dict1)
        percentages.append(a)
        for percent in percentages:
            segment = percent * 360
            rollingpercent += segment
            setheading(rollingpercent)
            pendown()
            forward(radius)
            penup()
            home()

Это, кажется, зацикливается навсегда. любой совет?

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