小编big*_*dot的帖子

Python和Matplotlib:在Jupyter Notebook中进行3D绘图交互

我使用Jupyter Notebook来分析数据集.笔记本中有很多情节,其中一些是3d图.

在此输入图像描述

我想知道是否有可能使3d绘图具有交互性,所以我可以稍后再详细介绍它?

也许我们可以在上面添加一个按钮?点击它可以弹出一个3d图,人们可以缩放,平移,旋转等.


我的思想:

1. matplotlib,%qt

这不适合我的情况,因为我需要在3d情节之后继续绘图.%qt会影响以后的情节.

2. mpld3

mpld3在我的情况下几乎是理想的,不需要重写任何东西,与matplotlib兼容.但是,它只支持2D绘图.我没有看到任何有关3D的计划(https://github.com/mpld3/mpld3/issues/223).

散景+ visjs

没有在bokeh图库中找到3d绘图的任何实际示例.我只找到使用的https://demo.bokehplots.com/apps/surface3dvisjs.

4. Javascript 3D情节?

因为我需要的只是直线和外观,是否可以使用浏览器中的js将数据传递给js plot以使其具有交互性?(然后我们可能还需要添加3d轴.)这可能类似于visjs,和mpld3.

python matplotlib jupyter-notebook

52
推荐指数
4
解决办法
7万
查看次数

面向对象的散景的多个问题[OBSOLETE]




注意:此问题涉及"第一代"Bokeh服务器,该服务器已被弃用和删除多年.此问题或其答案中的任何内容均与任何版本的Bokeh> = 0.11无关

有关使用现代支持的Bokeh服务器的详细信息,请参阅"用户指南"中的" 运行散热服务器"一章.




我正在尝试了解Bokeh是否正在构建一个交互式应用程序.我正在查看Bokeh示例,我发现大多数示例都是在全局命名空间中编写的,但是"app"子目录中的那些示例是以一种漂亮的,面向对象的方式编写的,其中主类是固有的来自像HBox这样的Property类.

这将是一个混乱的问题,因为我不认为这种编程Bokeh的方式有很好的记录.我遇到的第一件事是除非我包括,否则情节不会画出来extra_generated_classes.

  1. extra_generated_classes做什么?

    其次,看起来事件循环setup_events在启动之前调用,create并且随后每次触发事件时调用.

  2. 为什么每次触发事件时setup_events都需要注册回调?为什么它不会在第一次尝试注册之前等待创建完成?

    我不确定的最后一件事是如何在这里强制重绘一个雕文.滑块演示适用于我,我试图基本上做同样的事情,除了散点图而不是线.

    我在我的最后设置了一个pdb跟踪update_data,我可以保证self.source匹配,self.plot.renderers[-1].data_source并且它们都从一开始就进行了调整.但是,self.plot它本身并没有改变.

  3. 什么是面向对象的方法相当于调用store_objects来更新绘图?

    我对第三个问题特别困惑,因为它看起来不像sliders_app示例需要这样的东西.为了澄清,我正在尝试制作可变数量的小部件/滑块,所以这就是我的代码:

类属性:

extra_generated_classes = [['ScatterBias', 'ScatterBias', 'HBox']]
maxval = 100.0

inputs = Instance(bkw.VBoxForm)
outputs = Instance(bkw.VBoxForm)
plots = Dict(String, Instance(Plot))
source = Instance(ColumnDataSource)


cols = Dict(String, String)
widgets = Dict(String, Instance(bkw.Slider))
# unmodified source
df0 = Instance(ColumnDataSource)
Run Code Online (Sandbox Code Playgroud)

初始化方法

@classmethod
def create(cls):
    obj = cls()

    ##############################
    ## load DataFrame …
Run Code Online (Sandbox Code Playgroud)

python bokeh

31
推荐指数
1
解决办法
1830
查看次数

如何将独立散景图嵌入到django模板中

我想通过django框架在我的Web应用程序中显示散景库提供的图形,但我不想使用散景服务器可执行文件,因为它不是好方法.那有可能吗?如果是的话怎么做?

django django-templates python-2.7 bokeh

31
推荐指数
2
解决办法
1万
查看次数

在Bokeh中,如何将工具提示添加到时间序列图表(悬停工具)?

是否可以将工具提示添加到时间序列图表中?

在下面的简化代码示例中,当鼠标悬停在相关行上时,我希望看到单个列名称('a','b'或'c').

相反,一个"???" 显示并且所有三行都得到一个工具提示(而不仅仅是悬停在其上的一个)

在此输入图像描述

根据文档( http://bokeh.pydata.org/en/latest/docs/user_guide/tools.html#hovertool),以"@"开头的字段名称将被解释为数据源上的列.

  1. 如何在工具提示中显示pandas数据框中的"列"?

  2. 或者,如果高级TimeSeries接口不支持此功能,那么使用较低级别接口执行相同操作的任何线索?(line?multi_line?)或将DataFrame转换为不同的格式(ColumnDataSource?)

  3. 对于奖励积分,如何格式化"$ x"以将日期显示为日期?

提前致谢

    import pandas as pd
    import numpy as np
    from bokeh.charts import TimeSeries
    from bokeh.models import HoverTool
    from bokeh.plotting import show

    toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))   

    p = TimeSeries(toy_df, tools='hover')  

    hover = p.select(dict(type=HoverTool))
    hover.tooltips = [
        ("Series", "@columns"),
        ("Date", "$x"),
        ("Value", "$y"),
        ]

    show(p)
Run Code Online (Sandbox Code Playgroud)

tooltip python-3.x pandas timeserieschart bokeh

30
推荐指数
2
解决办法
2万
查看次数

Python Bokeh:从图表中删除工具栏

我似乎无法从散景条形图中删除工具栏.尽管将tools参数设置为None(或False''),我总是以bokeh徽标和灰色线结束,例如使用以下代码:

p = figure(toolbar_location=None)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用散景图时,它工作得非常好,工具栏也不见了,例如使用以下代码:

from bokeh.charts import Bar, output_file, show

# prepare some data
data = {"y": [6, 7, 2, 4, 5], "z": [1, 5, 12, 4, 2]}

# output to static HTML file
output_file("bar.html")

# create a new line chat with a title and axis labels
p = Bar(data, cat=['C1', 'C2', 'C3', 'D1', 'D2'], title="Bar example",
                xlabel='categories', ylabel='values', width=400, height=400,
                tools=None)

# show the results
show(p)
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

python bokeh

24
推荐指数
2
解决办法
1万
查看次数

在散景中隐藏轴

如何在散景图中隐藏x轴和y轴?我已根据此检查并尝试:

p1= figure (... visible=None)
p1.select({"type": "Axis", "visible": 0})
xaxis = Axis(plot=p1, visible = 0)
Run Code Online (Sandbox Code Playgroud)

http://bokeh.pydata.org/en/latest/docs/user_guide/styling.html#axes一样 但是可以完成它.谢谢

python bokeh

23
推荐指数
1
解决办法
9520
查看次数

用散景或matplotlib绘制主题

我正在尝试从模型中绘制主题可视化.我想做散景协方差实现.

我的数据是:

data 1: index,                            topics.   
data 2: index, topics, weights(use it for color). 
Run Code Online (Sandbox Code Playgroud)

主题只是一组单词.

如何将数据提供给散景图以绘制上述数据?从示例中,数据处理不直观.

使用matplot,它看起来像这样.
显然,看到哪个主题对应于每个圆圈在视觉上没有帮助.这是我的matplotlib代码:

x = []
y = []
area = []

for row in joined:
      x.append(row['index']) 
      y.append(row['index'])
      #weight.append(row['score'])
      area.append(np.pi * (15 * row['score'])**2)
scale_values = 1000
plt.scatter(x, y, s=scale_values*np.array(area), alpha=0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)

有什么想法/建议?

python data-visualization matplotlib bokeh

13
推荐指数
1
解决办法
3755
查看次数

尝试安装VSCODE扩展时获取连接ETIMEDOUT

当尝试从市场安装VSCODE扩展时,我可能由于公司防火墙限制而连接ETIMEDOUT xxx.xxx.xxx.xxx:443.

有没有办法从本地驱动器下载和安装扩展?我在VSCODE市场上找不到"下载"选项.

visual-studio-code

9
推荐指数
3
解决办法
9755
查看次数

在Bokeh轴标签中使用Latex

Bokeh不处理乳胶.已提出解决方案:http://bokeh.pydata.org/en/latest/docs/user_guide/extensions_gallery/latex.html#userguide-extensions-examples-latex

这非常适合在画布上添加Latex.是否有一种简单的方法可以使用此策略,因此我们可以在轴标签中使用Latex?

latex bokeh

9
推荐指数
1
解决办法
1175
查看次数

使用什么而不是bokeh.charts

我正在尝试运行由其他人编写的代码,其中包含该行

from bokeh.charts import Bar
Run Code Online (Sandbox Code Playgroud)

当我在Anaconda Prompt中运行它时,我收到消息"没有名为'bokeh.charts'的模块".

我安装了散景0.12.13,所以问题不在于我没有安装它.实际上,其他散景模块运行良好.

我在散景网站上注意到'图表'模块说它指的是以前的版本(参见https://bokeh.pydata.org/en/0.12.4/docs/reference/charts.html).

最新版本没有bokeh.charts吗?如果是这样,还有其他选择吗?

python charts bokeh

9
推荐指数
1
解决办法
1万
查看次数