Уведомления

Группа в Telegram: @pythonsu

#1 Июль 9, 2018 13:26:14

Izgoy
Зарегистрирован: 2018-07-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать график разными цветами.

Добрый день!
Не могу разобраться с рисованием графика.
Входные данные:
1) Список с координатами X
2) Список с координатами Y
3) Список состоящий из цифр: 1,2,3,4
Необходимо нарисовать точки, чтобы цвет зависел от значений в 3 списке ( н-р. там где один точки должны быть красного цвета ( для примера), там где два синего….
Получилось пока построить только все одним цветом с помощью plt.scatter(x, y).
Вот как выглядит график на екселе.
Буду благодарен за любую помощь.

Прикреплённый файлы:
attachment ыпвпфпа.jpg (205,3 KБ)

Офлайн

#2 Июль 9, 2018 15:04:01

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Нарисовать график разными цветами.

Izgoy а документацию читать не пробовали?
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html
там есть параметр color который как ни удивительно отвечает за цвет точек.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Июль 9, 2018 15:16:57

Izgoy
Зарегистрирован: 2018-07-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать график разными цветами.

PEHDOM
Izgoy а документацию читать не пробовали?https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.htmlтам есть параметр color который как ни удивительно отвечает за цвет точек.

Спасибо за ответ. Я ее читал. Проблема только в том что у меня не получается сделать так чтобы цвет зависел от значения в списке.
где то видел что такое предлагают ( список со цветами) но у меня не получилось так
plt.scatter(x, y, c=u.map({0: ‘blue’, 1: ‘orange’, 2: ‘red’, 3: ‘yellow’}));

С помощью такого кода, удалось только что нашаманить график:
i=0
R=
for element in u:
if element==1:
element='red'
if element==2:
element='blue'
if element==3:
element='orange'
if element==4:
element='yellow'
R.append(element)
#print(R)
i+=1
plt.scatter(x, y, c=R)
T2.close()
plt.show()

Офлайн

#4 Июль 9, 2018 15:30:16

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Нарисовать график разными цветами.

а в чем проблема? есть же словари.

 colors = {0: 'blue', 1: 'orange', 2: 'red', 3: 'yellow'}
for i in range(4):
    print(colors[i])
>>> 
blue
orange
red
yellow
>>>
если нужен список:
 colors = {0: 'blue', 1: 'orange', 2: 'red', 3: 'yellow'}
elements = (0,1,2,3,2,3,2,1,2,3)
colorlist= [colors[x] for x in elements]
print(colorlist)
>>> 
['blue', 'orange', 'red', 'yellow', 'red', 'yellow', 'red', 'orange', 'red', 'yellow']
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 9, 2018 15:38:48)

Офлайн

#5 Июль 9, 2018 15:38:52

Izgoy
Зарегистрирован: 2018-07-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать график разными цветами.

PEHDOM
colors = {0: ‘blue’, 1: ‘orange’, 2: ‘red’, 3: ‘yellow’}

Я просто с ними до этого не сталкивался. Попробовал и ошибки начали вылезать. Вот я с помощью логики без них и стал пытаться сделать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version