Я создаю XY-диаграмму в Bokeh со строкой 1: 1 и в идеале еще две линии для ошибок +/- 10% и ошибок +/- 20%.На данный момент мой график работает, но кажется не пифоничным и показывает слишком много записей легенды.Код в настоящее время:
import pandas as pd
from bokeh.plotting import figure, output_file, save
from bokeh.io import show, output_notebook
from bokeh.models import Span, HoverTool, ColumnDataSource
import numpy as np
# Call up duplicate plot
TOOLTIPS=[
("Sample", "@Sample"),
("Batch", "@Batch_No"),
("Source", "@Hole_ID"),
("Type", "@QC_Category")]
pdup = figure(title='Duplicate QC Review', x_axis_label='Duplicate', y_axis_label='Original', tools=tools_to_show,
tooltips=TOOLTIPS, outline_line_width=olwidth)
q = [0, 10000]
r = [0, 11000]
s = [0, 9000]
t = [0, 12000]
u = [0, 8000]
# 1:1 line, 10% and 20% error lines both above and below 1:1 line
pdup.line(q, q, color='green', legend='1:1')
pdup.line(q, r, color='orange', legend = '10%')
pdup.line(q, s, color='orange', legend = '-10%')
pdup.line(q, t, color='red', legend = '20%')
pdup.line(q, u, color='red', legend = '-20%')
pdup.circle(x='Copper_ppm', y='Cu_Duplicate', source=srcdup, size=10, color='green', legend='Copper (ppm)')
pdup.triangle(x='Gold_ppm', y='Au_Duplicate', source=srcdup, color='orange', size=10, legend='Gold (ppm)')
pdup.square(x='Molybdenum_ppm', y='Mo_Duplicate', source=srcdup, color='purple', size=10, legend='Molybdenum (ppm)')
pdup.diamond(x='Sulphur_ppm', y='S_Duplicate', source=srcdup, color='gray', size=10, legend='Sulphur (%)')
# Legend settings
# Make a series or connecting lines hidden by clicking on the legend entry
pdup.legend.click_policy='hide'
pdup.legend.border_line_color = "black"
pdup.legend.background_fill_color = "white"
pdup.legend.location = 'top_left'
show(pdup)
Поэтому я хотел бы заменить раздел, в котором я определяю q через u, чтобы построить две пары точек для каждой линии ошибки с некоторыми уравнениями, которые строят r /s (ошибка +/- 10%) и t / u (ошибка +/- 20%) вместо qiven q.Таким образом, я получу одну запись легенды для каждого.
Это выдает ошибку, хотя:
q = [0, 10000]
r = [q + (0.1 * q)]
И я все равно получу дублирующиеся записи для каждого типа ошибки