北京快3app Server介绍

Tavish Aggarwal.

在前面的帖子中  使用Python中的北京快3app包的数据可视化,我们了解到在Python中使用北京快3app Package生成强大的可视化。如果您还没有经历此帖子,或者您没有关于北京快3app的知识,我强烈建议您在进一步前进之前通过帖子。

我们将继续讨论北京快3app,我们将看到如何使用北京快3app包构建强大的应用程序。

北京快3app Server的优点

  • 可视化/报告可以通过大型受众查看,因为输出是HTML页面的形式。因此,可以部署为Web应用程序。
  • 我们可以生成实时交互式可视化。
  • 我们可以构建应用程序和仪表板

运行北京快3app服务器

要运行北京快3app服务器,我们需要在下面运行命令:

bokeh serve --show <file.py>

我建议仅创建Python文件(.py)而不是创建Jupiter笔记本。以这种方式,我觉得这很容易。

我们还可以在目录样式方法中运行一个应用程序来创建更复杂的北京快3app应用程序:

bokeh serve --show /directory

入门

在下面显示的所有示例中,我们将使用  屋产销售所 dataset from the kaggle. The data has been loaded in housePropertyDataset variable.

import pandas as pd

housePropertyDataset = pd.read_csv('house_property_sales.csv')

Let's get started and build our first bokeh application using bokeh server. In this example, we will be plotting TotalBsmtSF and SalePrice column of housePropertyDataset

请参阅下面显示的代码:

# Perform necessary imports
from bokeh.io import curdoc
from bokeh.plotting import figure, ColumnDataSource
from bokeh.layouts import widgetbox
import pandas as pd

housePropertyDataset = pd.read_csv('../house_property_sales.csv')

x = housePropertyDataset['TotalBsmtSF']
y = housePropertyDataset['SalePrice']


plot = figure(x_axis_label='Total Basement Area (In sqft)', y_axis_label='Sales Price')
source = ColumnDataSource(data={'total_bsmt_SF': x, 'sale_price': y})

# Add a line to the plot
plot.circle('total_bsmt_SF', 'sale_price', source=source)

layout = column(plot)

# Add the plot to the current document
curdoc().add_root(layout)

Note that we have used curdoc function to add a layout to the current document which will be rendered on the page.

我们刚刚创建了基本可视化并在北京快3app Server上提供。我们少数人可能想知道我在这里克服的优势是什么,因为可以使用bokeh生成相同的输出。

这是真的,截至目前我们刚刚开始,并没有经历过散景服务器的真正力量。沿着帖子遵循散景服务器的真正力量。

滑块

现在是时候向我们的可视化添加滑块是时候了,这是使用北京快3app Server而不是北京快3app的优势之一。让我们看一下如下所示的示例:

# Perform necessary imports
from bokeh.io import curdoc
from bokeh.plotting import figure, show, ColumnDataSource
from bokeh.models import Slider
from bokeh.layouts import widgetbox, column, row
import pandas as pd

housePropertyDataset = pd.read_csv('../house_property_sales.csv')

x = housePropertyDataset['TotalBsmtSF']
y = housePropertyDataset['SalePrice']

def changeArea(attr, old, new):
    scale = slider.value
    new_data = {
        'total_bsmt_SF' : housePropertyDataset.loc[housePropertyDataset['YrSold'] == scale, 'TotalBsmtSF'],
        'sale_price'    : housePropertyDataset.loc[housePropertyDataset['YrSold'] == scale, 'SalePrice']
    }
    source.data = new_data
    plot.title.text = 'Total Basement Area VS Sales Price for the Year Sold %d' % scale

plot = figure(x_axis_label='Total Basement Area (In sqft)', y_axis_label='Sales Price')
source = ColumnDataSource(data={'total_bsmt_SF': x, 'sale_price': y})

# Creating Slider
slider = Slider(title='Sales Year', start=2006, end=2010, step=1, value=2006)
slider.on_change('value', changeArea)

plot.circle('total_bsmt_SF', 'sale_price', source=source)

# Generating Layout
layout = column(widgetbox(slider), plot)

curdoc().add_root(layout)

We are using the callback function in the example shown above. Callbacks are functions that a user can define, like def callback(attr, old, new), that can be called automatically when some property of a 北京快3app object (e.g., the value of a Slider) changes.

您可能已经注意到我们正在根据已售的年份切片数据,并呈现新数据。我们还根据滑块更新绘图的标题。

通过这种方式,滑块可以帮助我们实现交互式可视化,在那里我们可以基于应用的滑块查看图。

下拉式菜单

我们可以为我们的可视化添加下拉目以使其交互式。考虑下面显示的示例:

# Perform necessary imports
from bokeh.io import curdoc
from bokeh.plotting import figure, show, ColumnDataSource
from bokeh.models import Slider, Select
from bokeh.layouts import widgetbox, column, row
import pandas as pd

housePropertyDataset = pd.read_csv('../house_property_sales.csv')

x = housePropertyDataset['TotalBsmtSF']
y = housePropertyDataset['SalePrice']
    
def salesCondition(attr, old, new):
    source.data = {
        'total_bsmt_SF' : housePropertyDataset.loc[housePropertyDataset['SaleCondition'] == new, 'TotalBsmtSF'],
        'sale_price' : housePropertyDataset.loc[housePropertyDataset['SaleCondition'] == new, 'SalePrice']
    }

plot = figure(x_axis_label='Total Basement Area (In sqft)', y_axis_label='Sales Price')
source = ColumnDataSource(data={'total_bsmt_SF': x, 'sale_price': y})

select = Select(title=" 销售情况 ", options=['Normal', 'Abnorml', 'Partial', 'AdjLand', 'Alloca', 'Family'], value='Normal')
select.on_change('value', salesCondition)

# Add a line to the plot
plot.circle('total_bsmt_SF', 'sale_price', source=source)


# Add slider1 and slider2 to a widgetbox
layout = column(widgetbox(select), plot)
# Add the plot to the current document
curdoc().add_root(layout)

添加下拉菜单几乎类似于将滑块添加到图中。我们声明一个函数并将其定义为“选择”选项的on_change函数。

每次从菜单中选择选项时,绘图都会重新呈现。 

纽扣

我们可以在北京快3app Server可视化中定义切换,无线电,复选框,按钮等。考虑下面显示的代码显示按钮:

# Perform necessary imports
from bokeh.io import curdoc
from bokeh.plotting import figure, show, ColumnDataSource
from bokeh.models import Slider, Select, Button
from bokeh.layouts import widgetbox, column, row
import pandas as pd

housePropertyDataset = pd.read_csv('../house_property_sales.csv')

x = housePropertyDataset['TotalBsmtSF']
y = housePropertyDataset['SalePrice']

def reset():
    source.data ={'total_bsmt_SF': x, 'sale_price': y}
    
plot = figure(x_axis_label='Total Basement Area (In sqft)', y_axis_label='Sales Price')
source = ColumnDataSource(data={'total_bsmt_SF': x, 'sale_price': y})

button = Button(label='Reset Filters')
button.on_click(reset)

# Add a line to the plot
plot.circle('total_bsmt_SF', 'sale_price', source=source)


# Add slider1 and slider2 to a widgetbox
layout = column(widgetbox(button), plot)
# Add the plot to the current document
curdoc().add_root(layout)

 在上面显示的代码中,我们声明了一个按钮重置绘图。

以一种类似的方式,我们可以定义任何按钮:

from bokeh.models import CheckboxGroup, RadioGroup, Toggle

toggle = Toggle(button_type='success', label='Toggle button')

checkbox = CheckboxGroup(labels=['Old', 'New', 'Unsold'])

radio = RadioGroup(labels=['Old', 'New', 'Unsold'])

curdoc().add_root(widgetbox(toggle, checkbox, radio))

概括

在这篇文章中,我们已经看到:

  • 基本生成散景服务器应用程序。
  • 我们将滑块和下拉菜单添加到可视化并使它交互。
  • 我们还了解如何添加切换,单选按钮复选框到可视化。

您可以找到生成的北京快3app应用程序的最终输出 这里 .

我们已经看到了北京快3app Server的基础知识并创建了惊人的交互式可视化。你为什么不给它尝试并使它更加互动?

让我在下面的评论部分中了解您的意见。快乐学习!

作者信息

Tavish Aggarwal.

网站: http://tavishaggarwal.com

Tavish Aggarwal. 是一个数据科学家 在一个海德拉巴工作,具有广泛的经验,在跨电子商务,财务,医疗保健等等不同领域解决现实世界的业务问题。 他对技术充满热情,喜欢在团队中工作。