我正在尝试绘制包含工具提示的折线图,但下面的代码会导致在工具提示中显示该行的所有值,而不是显示这些坐标的单个值
Begin Tran
CREATE TABLE #Person(PersonId INT,FirstName NVARCHAR(50),LastName NVARCHAR(50))
CREATE TABLE #Customer (CustomerId INT,PersonId INT)
INSERT INTO #Person
SELECT 1,'John','Doe' UNION ALL
SELECT 2 ,'Mike','Test' UNION ALL
SELECT 3 ,'John','Doe' UNION ALL
SELECT 4 ,'Mike','Test' UNION ALL
SELECT 5 ,'John','Doe' UNION ALL
SELECT 6 ,'John','Doe'
INSERT INTO #Customer
SELECT 1001, 1 UNION ALL
SELECT 1002 ,2 UNION ALL
SELECT 1003 ,3 UNION ALL
SELECT 1004 ,4 UNION ALL
SELECT 1005,5 UNION ALL
SELECT 1006,6
GO
WITH CTE (PersonId, DuplicateCount)
AS
(
SELECT FirstName,
ROW_NUMBER() OVER(PARTITION BY FirstName,LastName ORDER BY FirstName,PersonId) AS DuplicateCount
FROM #Person
)
--Select * from CTE WHERE DuplicateCount>1
DELETE FROM CTE WHERE DuplicateCount >1
DELETE FROM #Customer WHERE PersonId NOT IN(SELECT PersonId FROM #Person)
Select * from #Person
SELECT * from #Customer
ROLLBACK TRAN
我试图在实例上给定鼠标时只获得一个井,Date_time,Test_value
答案 0 :(得分:1)
此代码:
hover.tooltips = [
("Wells","@wells"),
("Date","@%s"%(df['date_time'])),
("Values","@%s"%(df['test_value']))
]
不按你的想法行事。我们假设df['date_time']
的值为[10, 20, 30, 40]
。然后在您的字符串替换后,您的工具提示如下所示:
("Date", "@[10, 20, 30, 40]")
准确地解释了你所看到的内容。 @[10
部分在ColumnDataSource中查找名为"[10"
的列(因为前面有@
)。没有具有该名称的列,因此工具提示会打印???
以指示无法找到要查找的数据。其余的20, 30, 40
只是纯文本,因此它按原样打印。在您的代码中,您实际上是在传递Pandas系列而不是列表,因此字符串替换也会在工具提示文本中打印Name
和dtype
信息。
由于您将序列文字传递给scatter
,因此它会为您创建一个列数据源,而CDS中的默认名称为'x'
和'y
'。我最好的猜测是,你真的想要:
hover.tooltips = [
("Wells","@wells"),
("Date","@x"),
("Values","@y")
]
但请注意,您希望在外部循环中执行此操作。因为它只是一遍又一遍地修改相同的悬停工具。