擅长:python、mysql、java
<p>Datashader确实没有像这里使用的那样处理分类轴,但这与其说是软件的限制,还不如说是我的想象,它应该如何处理它们呢?Datashader散点图(Canvas.points)适用于连续索引2D平面上的大量点。这样的图近似于2D概率分布函数,每像素累积点以显示该区域的密度,并显示像素之间的空间模式</p>
<p>分类轴与连续数值轴的属性不同,因为相邻值之间没有空间关系。特别是在这种情况下,ID字段的顺序没有明显的意义(它似乎是体育赛事类型的字母代码),因此我看不出像Datashader设计的那样,在每个像素上累积ID值有什么意义。即使将ID转换为数字,也会得到随机外观的噪声(如果ID值大于垂直像素),或者一系列斑点线(如果ID值小于像素)</p>
<p>在这里,可能只有几十个左右的唯一ID值,但是很多很多时间测量?在这种情况下,大多数人会对每个ID使用方框、提琴、直方图或脊线图来查看每个ID值的值分布。Datashader points图是一个2D直方图,但是如果一个轴是分类的,那么你实际上是在处理一组1D直方图,而不是一个单一的组合2D直方图,所以如果你想要的是直方图,就使用直方图</p>
<p>如果您确实想尝试将每个ID的所有点绘制为原始点,那么可以使用垂直尖峰事件(如<a href="https://examples.pyviz.org/iex_trading/IEX_stocks.html" rel="nofollow noreferrer">https://examples.pyviz.org/iex_trading/IEX_stocks.html</a>)来完成。您也可以添加一些垂直抖动,然后使用Datashader,但目前还不直接支持这种方法,而且它没有普通Datashader绘图所具有的清晰数学解释(就近似密度函数而言)</p>
<p><a href="https://i.stack.imgur.com/6EEr4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/6EEr4.png" alt="stocks"/></a>
<a href="https://i.stack.imgur.com/vt3Ry.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/vt3Ry.png" alt="taxi tips"/></a></p>