如何让Bokeh根据缩放比例绘制散点图大小

时间:2017-07-25 00:28:24

标签: bokeh

我的团队中的一些人,包括我自己,发现在散景散点图中使用circle方法非常迷惑,为了对数字进行初始自动调整,我们可以拨打以合理的大小为我们的数据使用例如plot.circle( x , y , size=3 )

之类的东西

然而,当我们以交互方式放大我们的数据时,显示的字形大小对缩放是不变的。有没有办法让它们与我们拨入的缩放比例成比例?类似于矢量图形交互的东西(例如svg)。如果记忆为我提供正确的matlab数字和matplotlib数字应该保持缩放比例行为。为了演示我们所看到的行为,请考虑第一张图像和红色框,我大致放大第二张图像。

initial zoom focused zoom

就像使用Powerpoint的快速演示来说明所需的行为...... vector graphic example 1 vector graphic example 1 zoomed in

2 个答案:

答案 0 :(得分:5)

对于圈子,请设置radius kwarg而不是size值。 (其他字形类型也有类似的字形特定值)。

即:

plot.circle(x=[1,2,3], y=[1,2,3], radius=0.5)

size始终以屏幕坐标(像素)呈现,但radius和相关属性在数据坐标中计算,并且应在缩放时更改。

答案 1 :(得分:0)

这是Bryan Van de Ven的一个很好的演示,展示了本次会议演讲中给出的像素坐标(size)和数据坐标(radius)之间的差异:

Intro to Data Visualization with Bokeh - Part 2 - Strata Hadoop San Jose 2016

  

...重点是所有这些属性都可以向量化。我们可以   例如说size等于您知道2、4、6、8、10,现在的大小   被正确调制。因此,我们有一个尺寸为2的尺寸,而另一个尺寸为2   大小4。大小通常以像素为单位,半径通常以数据尺寸为单位   单位。但是这里所有其他颜色以及所有颜色   视觉属性可以通过这种方式矢量化。你可以给   它们是单个值,例如我们用行填充完成的值   颜色,或者您可以为他们提供值的向量,在这种情况下,   情况有所不同。

     

所以下一个练习在这里   笔记本,这是第二个笔记本“ 02-绘图”,它是尝试   创建相同的示例,但现在设置半径而不是大小和   看看如果设置半径,则设置有什么区别   大小。