Цветовая кодировка точек на графике в зависимости от оси X - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть график в сюжете.По сути, я пытаюсь изменить цвет каждой точки на графике, если значением по оси Y является любое из значений в данном списке.

Например:

list = ["ACACT", "TATTC", "CGATT"]

Если это был мой график, я хочу, чтобы все точки, соответствующие любому из значений в списке, были красными.

Plotly Graph

Мой текущий код графика:

trace = go.scatter(
      x = x1,
      y = x2,
      mode = 'markers'
)
data = [trace]
py.iplot(data, filename='basic-scatter')

Я знаю, что вы можете редактировать маркер, используя

marker = dict()

Но можете ли вы сделать это для определенных точек, как я пытаюсь сделать?

1 Ответ

0 голосов
/ 03 февраля 2019

Вы можете передать список цветов в color в marker, например,

go.Scatter(x=x
           y=y,
           mode='markers',
           marker={'color': colors})

В приведенном ниже примере цвет по умолчанию используется для всех точек, нонемногие из них окрашены по-разному на основе dict, который использует значение оси Y в качестве ключа и цвет в качестве значения.

enter image description here

import random 
import plotly 
plotly.offline.init_notebook_mode()

# generate some random x and y-values 
n_points = 10 
y = [] 
for i in range(4):
    _y = 'AT' + 'ATGC'[i]
    y.extend([_y + nuc for nuc in 'ATGC']) 
x = [random.random() for _ in range(n_points * len(y))] 
y = y * n_points

# the default color 
default_color = 'rgb(0,0,255)'

# define our special colors 
special_colors = {'ATAT': 'rgb(255, 0, 0)',
                  'ATTA': 'rgb(0, 255, 0)'}

# build a list of custom 
colors colors = []
for i, y_value in enumerate(y):
    colors.append(special_colors.get(y_value, default_color))

fig = plotly.graph_objs.Figure() 
fig.add_scatter(x=x, y=y, mode='markers', marker={'color': colors}) 
plotly.offline.iplot(fig)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...