运行Bokeh脚本时收到此错误:
错误:bokeh.core.validation.check:E-1019(DUPLICATE_FACTORS):FactorRange必须为轴指定唯一的分类因子列表:找到重复的因子:'265','299']
我以前从未收到过此错误消息。我在多个不同的表上使用了脚本,因此我不确定会发生什么。我的SQL脚本唯一的区别是,我使用DATEADD(month,-1,GETDATE())而不是DATEADD(day,-30,GETDATE())来获取时间范围,但是我无法想象这会影响Bokeh脚本并创建重复值。
这是我的代码:
import os import pandas as pd import pyodbc from bokeh.plotting import figure, show from bokeh.io import export_png from bokeh.models import ColumnDataSource, Title, FixedTicker conn = pyodbc.connect('Driver={};' 'Server=server;' 'Database=db;' 'Trusted_Connection=no;' 'UID=username;' 'PWD=password;') cursor = conn.cursor() cursor.execute('SELECT * FROM [P21].[dbo].[UPS_shipment_daily_month]'); rows = cursor.fetchall() str(rows) df = pd.DataFrame( [[ij for ij in i] for i in rows] ) df.rename(columns={0: 'Count', 1: 'Date'}, inplace = True); df.head() df['Date'] = list(map(str, df['Date'])) ds = ColumnDataSource(df) p = figure(x_range = df['Date'], plot_height = 800, plot_width = 1600, title = "30 Day Shipment Trend", toolbar_location=None, tools="") p.line(source=ds, x='Date', y='Count', color="#87CEFA", line_width=8) p.xaxis.axis_label = "Date" p.xaxis.axis_label_standoff = 30 p.xaxis.axis_label_text_font_style = "normal" p.yaxis.axis_label = "Number of Orders" p.yaxis.axis_label_standoff = 30 p.yaxis.axis_label_text_font_style = "normal" p.xaxis.axis_label_text_font_size = "15pt" p.yaxis.axis_label_text_font_size = "15pt" p.yaxis.major_label_text_font_size = "12pt" p.xaxis.major_label_text_font_size = "8pt" p.title.align = 'center' p.title.text_font_size = '20pt' p.xgrid.grid_line_color = None p.y_range.start = 0 show(p)
感谢您提供的任何帮助!
我在运行Bokeh脚本时收到此错误:ERROR:bokeh.core.validation.check:E-1019(DUPLICATE_FACTORS):FactorRange必须为轴明确指定类别因子的唯一列表:重复...
您正在使用日期字符串作为分类坐标。很好,但是在配置范围时,需要提供唯一坐标值的列表,并希望它们在轴上出现的顺序。看: