散景无法设置初始范围



我是一个在散景中绘制图形的初学者。如果这是一个愚蠢的问题,请原谅我。

我正试图绘制一个线形图,我的数据在一个数据框中,我提供了x和y轴作为列表。但y轴上的一些数据中有非类型对象。当在"datapoints"中为nontype时;列对应的"datapoint_count";有一个像[1]这样的列表。否则,"数据表"将";列应该有一个包含20个浮点数的列表,相应的datapoint_count列应该有一个包含1-20个数字的列表。所以基本上我希望图形的x轴显示1-20的范围,y轴应该绘制介于90.0 - 180.0之间的数据点当我运行代码时,没有python错误,但如果我去浏览器并检查开发人员的工具,它说散景无法设置初始范围。

data=df
random_figure = figure(title='random', x_axis_label="Index", y_axis_label="random [ms]",
plot_width=800, plot_height=400, output_backend="webgl")
random_figure.add_tools(random_hover)
id_values = data['testcase_id'].drop_duplicates()
data_temp= data[['id', 'datapoints']].copy()
data_temp['datapoint_count'] = None
data_temp['datapoint_count'] = data_temp['datapoint_count'].astype(object)
for indexes, item in data_temp.iterrows():
if item['datapoints'] is None or str(item['datapoints']) == '[]': # this has nonetype or strings
item['datapoints'] = [0]
else:
item['datapoints'] = [float(x) for x in item['datapoints'].strip('[').strip(']').split(',')]
iter_nr = 0
raw_data_count = []
for each in item['datapoints']:
iter_nr += 1
datapoint_count.append(iter_nr)
data_temp.at[indexes, 'datapoint_count'] = datapoint_count
name_dict_random = {'name': [], 'legend': [], 'label': []}
logging.info('START OF DRAWINGS')
for ind, id in enumerate(id_values):
it_color = Turbo256[random.randint(0, 255)]
name_glyph_random = random_figure.line(x='datapoint_count',
y='datapoints',
line_width=2,
legend_label=str(id),
source=data_temp.where(
data_temp['id'] == id).dropna(),
color=it_color)
name_dict_random['name'].append(name_glyph_random)
name_dict_random['label'].append(str(id))
logging.info('AFTER DRAWINGS LOOP')
for label in range(len(data.id.unique())):
name_dict_random['legend'].append(random_figure.legend.items[label])
initial_value = []
options = list(data.id.unique())
for i, name in enumerate(options):
options[i] = str(name)
for i in range(len(options)):
if name_dict_random['label'][i] in initial_value:
name_dict_random['name'][i].visible = True
name_dict_random['legend'][i].visible = True
else:
name_dict_random['name'][i].visible = False
name_dict_random['legend'][i].visible = False

我现在解决了。实际上,虽然数据框显示的是行内容数组,但它们实际上被归类为对象。散景无法理解如何处理轴上的物体。现在我用iloc:

来引用它们
x = data[data['id'] == id]['datapoint_count'].iloc[0]
y = data[data['id'] == id]['datapoint'].iloc[0]
name_glyph_handover = handover_figure.line(x=x, y=y, line_width=2,
legend_label=str(id), color=it_color)

最新更新