在Bokeh中调整matplotlib标记大小?

时间:2017-03-20 22:54:31

标签: python python-3.x matplotlib scatter-plot bokeh

我正在看这个matplotlib散点图示例: https://matplotlib.org/examples/shapes_and_collections/scatter_demo.html

"""
Simple demo of a scatter plot.
"""
import numpy as np
import matplotlib.pyplot as plt


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()

它生成这个数字: enter image description here

我试图通过利用matplotlib来完成同样的事情:

import numpy as np
import matplotlib.pyplot as plt
from bokeh.plotting import output_file, show
from bokeh import mpl

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5)

output_file("scatter_demo.html")

show(mpl.to_bokeh())

但它产生了这个数字: enter image description here

如何调整圆圈的半径?我确信它可以用纯粹的散景完成,但我希望用Bokeh做一个更高级的情节,它依赖于Matplotlib,所以我希望使用show(mpl.to_bokeh())。谢谢!

在运行Bokeh脚本时,我也收到此警告:

/Users/tc9/lib/python3.6/site-packages/bokeh/core/compat/bokeh_renderer.py:263: UserWarning: Path marker shapes currently not handled, defaulting to Circle
  warnings.warn("Path marker shapes currently not handled, defaulting to Circle")
/Users/tc9/lib/python3.6/site-packages/matplotlib/artist.py:233: MatplotlibDeprecationWarning: get_axes has been deprecated in mpl 1.5, please use the
axes property.  A removal date has not been set.
  stacklevel=1)

编辑:散点图的等效Bokeh演示示例如下: http://bokeh.pydata.org/en/latest/docs/gallery/color_scatter.html

它产生了这个数字: enter image description here

1 个答案:

答案 0 :(得分:2)

我不得不告诉你,截至Bokeh 0.12.5(将于本周晚些时候发布),Bokeh的MPL compat支持正在被完全弃用。它将在Bokeh 1.0时完全删除,并且在中间时间内不会收到任何更新(所有与其相关的示例和文档也将被删除)。

未来,严格的标准化MPL JSON标准可能会使新的单独项目以可维护的方式提供此功能。