-1

我们正在尝试从一个简单的 CSV 文件中绘制一个圆形图,该文件有两列,使用 Bokeh 进行数据可视化,使用 Panda 读取 CSV。以下是我们计划绘制图表标签 X 轴和平均 Y 轴的 CSV 文件数据。但是它绘制空图。

在此处输入图像描述

以下是我们的python脚本

from bokeh.plotting import figure, output_file, show
import pandas as pd
from bokeh.models import DatetimeTickFormatter, ColumnDataSource
from bokeh.models.tools import HoverTool

output_file('columndatasource_example.html')
df = pd.read_csv(r"E:/MySpace/pythonTest/aggregate3.csv")
sample= df.sample(5)
source = ColumnDataSource(sample)
#print(df.columns.tolist())
p = figure()
p.circle(x='Label', y='Average',
     source=source,
     size=5, color='green')
p.title.text = 'BPM Load test results'
p.xaxis.axis_label = 'Request name'
p.yaxis.axis_label = 'Response time in miliseconds'
hover = HoverTool()
hover.tooltips=[
('Request Name', '@Label'),
('Response Time', '@Average'),
('Throughput', '@Throughput')    
]
p.add_tools(hover)
show(p)
4

1 回答 1

0

我认为您需要将“标签”列重组为数字,以实现散景所需的功能。我的意思是,如果您尝试使用数字变量而不是 df['label'] 完全相同,它将被绘制。在这种情况下,当然最后你需要用你想要的值重新标记 x 轴。如果您提供 csv 文件,您将获得更多帮助。但我认为必须做一些与此相当的事情......

labels0 = df['Label'].tolist()
un_labels = list(sorted(set(df['Label'])))
labels_tran = []
for label in labels0:
    labels_tran.append(un_labels.index(label))
df['labels_tran'] = labels_tran

然后使用 df['labels_tran'] 作为 x 轴进行绘图

于 2019-06-22T08:57:01.817 回答