精华内容
下载资源
问答
  • 交互式数据可视化具有以下特点: 它们使您可以通过更改颜色,参数和与数据进行交互,因此更易于探索。 它们可以轻松,即时地进行操作。 由于您可以与他们互动,因此可以在您面前更改图表。 例如,在本文中,您将...

    关联知识

    静态 vs 交互式

    虽然静态数据可视化是向提取和解释数据集所拥有的价值和信息这一目标迈出的巨大飞跃,但交互性的增加使这些可视化向前迈了一大步。

    交互式数据可视化具有以下特点:

    • 它们使您可以通过更改颜色,参数和图与数据进行交互,因此更易于探索。
    • 它们可以轻松,即时地进行操作。 由于您可以与他们互动,因此可以在您面前更改图表。 例如,在本文中,您将创建一个交互式滑块。 当更改此滑块的位置并且所看到的图形发生变化时,您还可以创建复选框,以选择想要查看的参数。
    • 它们使您能够访问实时数据及其提供的见解。 这样可以快速有效地分析趋势。
    • 它们更容易理解,从而使组织可以做出更好的基于数据的决策。
    • 他们消除了拥有多个用于相同信息的图的需求-一个交互式图能够传达相同的见解。
    • 他们可以让你观察关系。

    让我们从一个示例开始,了解通过交互式可视化可以实现的目标。 让我们考虑一个注册健身房会员的数据集:

    图略

    以下是箱形图形式的静态数据可视化,它描述了按性别分类的人们的体重(0是男性,1是女性,2是其他):

    图略

    我们从该图上可获得的唯一见解是体重与性别之间的关系 - 去该体育馆的男性顾客体重在62kg至91kg之间,女性顾客体重在57kg至86kg之间,其他顾客的体重在61kg至90kg之间。 但是,数据集中存在用于生成该箱形图的第三个特征-年龄。 在前面的静态图中添加此功能可能会导致在理解数据方面的混乱。 因此,对于使用静态可视化显示所有三个功能之间的关系,我们有些困惑。 通过创建交互式可视化文件,可以轻松解决此问题,如下所示:

    图略

    在前面的方框图中,为年龄功能引入了一个滑块。 用户可以手动滑动滑块的位置,以观察体重,性别和年龄在不同年龄值之间的关系。 此外,还有一个悬停工具,允许用户获得有关数据的更多信息。

    前面的方框图说明,在这个体育馆中,只有46岁的顾客是与众不同的顾客,最重的46岁顾客重82公斤,而最轻的人重56公斤。

    用户可以滑动到另一个位置,以观察不同年龄的体重和性别之间的关系,如下图所示:

    图略

    上图描述了34岁时的数据–没有男性健身客户; 但是,最重的34岁女性客户体重为100公斤,而最轻的女性客户体重为71公斤。

    但是,区分静态可视化和交互式可视化时还有更多方面要考虑。 让我们看一下下表:

    图略

    最终,交互式数据可视化将数据的讨论转变为讲故事的艺术,从而简化了理解数据试图告诉我们的过程。 他们既有益于创建可视化的人(因为他们试图传达的消息和信息被有效且以视觉愉悦的方式传达),也有益于查看可视化的人(因为他们几乎可以立即理解并观察模式和见解) 。 这些方面是将交互式可视化与静态可视化分开的地方。

    入门

    正如我们前面提到的,交互式数据可视化的关键方面是它能够立即或在很短的时间内响应和响应人类的输入。 因此,人工输入本身在交互式数据可视化中起着重要作用。 在此,我们将研究一些人工输入,如何将其引入数据可视化中以及它们对数据理解的影响。

    以下是一些最流行的人工输入和交互功能形式:

    • 滑块:滑块允许用户查看与一定范围内有关的数据。 当用户更改滑块的位置时,绘图实时更改。 这使用户可以实时查看多个图:

    图略

    • 悬停:将光标悬停在图的元素上方可以使用户接收到有关数据点的更多信息,而不仅仅是观察图即可看到。 当您希望传达的信息不能适合绘图本身(例如精确值或简短描述)时,这将很有帮助。 让我们看一下一个悬停工具:

    图略

    • 缩放:放大和缩小图是许多交互式数据可视化库自己创建的功能。 它们使您可以专注于绘图的特定数据点并仔细查看它们。
    • 可点击参数:可点击参数有多种类型,例如复选框和下拉菜单,它们使用户可以选择要分析和查看的数据的哪些方面。 这里给出一个例子:

    图略

    有一些Python库可用于创建这些交互式功能,从而使可视化可以接受人工输入。 因此,在开始编码和创建这些交互式功能之前,让我们快速看一下现有的一些最流行的交互式数据可视化Python库。

    我们已知两个内置的Python库:

    • matplotlib
    • seaborn

    两者在数据可视化社区中都很流行。

    有了这些,我们可以建立一个静态可视化(一个静态散点图,显示两个变量之间的关系),如下所示:

    图略

    尽管matplotlib和seaborn都非常适合静态数据可视化,但还有其他库可以很好地设计交互功能。

    以下是两个最受欢迎的交互式数据可视化Python库:

    • bokeh
    • plotly

    这些有助于我们创建如下可视化效果:

    图略

    接下来,我们将同时使用bokeh和plot来创建交互式数据可视化。

    bokeh的交互式数据可视化

    准备数据库

    创建基础静态图

    详情参阅http://viadean.com/py_visual_interactive.html

    展开全文
  • 文中从地理信息系统(GIS)空间查询与空间分析的角度探讨了地图可视化中人机交互的过程,分析了可视化交互界面的主要功能,阐述了交互式可视化查询的3种方式及其与交互界面的关系,给出了一个交互式的可视化空间分析框架,...
  • 基于地图的交互式可视化技术初探,樊明辉,陈崇成,归纳了信息可视化及可视化交互的概念、方法、技术,分析了GIS可视化交互界面的层次结构和功能,在此基础上,从空间查询和空间分析
  • python数据可视化:使用Dash进行交互式可视化

    万次阅读 多人点赞 2019-01-04 15:32:36
    上一篇介绍的是Bokeh,是一个交互式的可视化工具,Dash同样也是一个优秀的交互式可视化工具,基于plotly,个人感觉Dash比Bokeh更好用,下面是我用Dash写的一个分析报告: 链接在这,感兴趣可以看一下,就是加载需要...

    Dash

    上一篇介绍的是Bokeh,是一个交互式的可视化工具,Dash同样也是一个优秀的交互式可视化工具,基于plotly,个人感觉Dash比Bokeh更好用,下面是我用Dash写的一个分析报告:
    链接在这,感兴趣可以看一下,就是加载需要点时间:https://dash-da-hr.herokuapp.com/

    整体:

    在这里插入图片描述

    细节:

    图一:
    在这里插入图片描述

    图二:
    在这里插入图片描述

    小例子:

    代码如下:

    import pandas as pd
    import numpy as np
    import dash
    import dash_core_components as dcc
    import dash_html_components as html
    import plotly.graph_objs as go
    
    app = dash.Dash()
    server = app.server
    # 数据载入
    df = pd.read_csv('https://raw.githubusercontent.com/ffzs/dataset/master/insurance.csv')
    # app的layout 
    app.layout = html.Div([
        html.Div([
            html.Label('Gender'),
            html.Div([
                dcc.Dropdown(   # 功能性组件, 设定id值作为标签关联callback函数中的标签
                    id='gender',
                    options=[{'label': i, 'value': i} for i in ['female', 'male']],
                    value='female'),
            ]),
            html.Label('Color'),
            html.Div([
                dcc.Dropdown(
                    id='color',
                    options=[{'label': i, 'value': i} for i in ['region', 'smoker', 'children']],
                    value='region'),
            ]),
        ], className="three columns"),  # 直接加入css的功能
        html.Div([
            dcc.Graph(id='scatter')    # 关联graph
        ], className="eight columns")
    ], className="page")
    
    # 对callback函数进行设置, 与上面的对应, 将数据return回对应id的Graph
    @app.callback(
        dash.dependencies.Output('scatter', 'figure'),
        [dash.dependencies.Input('gender','value'),
         dash.dependencies.Input('color','value')]
    )
    def update_scatter(value_gender, value_color):
        grouped = df.groupby('sex')  # 以性别分组
        data = grouped.get_group(value_gender)  # 获取选取的性别为变量
        # color_col = value_color   # 获取颜色分类的属性
        color_class = pd.Categorical(data[value_color])   # 将颜色分类数据明确化
    #     c = [Spectral8[i] for i in color_class.codes]   # 获取颜色列表
        s = [(np.sqrt(i)+2) for i in data['age']]   # 将年龄数据开方用大小表示用以区别年龄大小
        trace = go.Scatter(
                    x=data["bmi"],
                    y=data["charges"],
                    mode='markers',
                    marker=dict(
                        size=s,
                        sizemode='diameter',
                        sizeref=0,
                        color=color_class.codes,
                        colorscale='Earth'
                    ))
    
        layout = go.Layout(margin=dict(l=20, r=20, t=0, b=30))
        fig = go.Figure(data=[trace], layout=layout)
        return fig
    
    # css的设置
    external_css = ["https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css",
                    "https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css",
                    "https://codepen.io/ffzs/pen/mjjXGM.css",
                    "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"]
    
    for css in external_css:
        app.css.append_css({"external_url": css})
    
    
    if __name__ == '__main__':
        app.run_server(host='0.0.0.0', debug=True)  # 运行app 设置host 默认是localhost
    

    运行以后访问对应网址:http://0.0.0.0:8050/

    结果图示如下:
    在这里插入图片描述

    展开全文
  • 交互式数据可视化 简介(我们将创建的内容): (Introduction (what we’ll create):) Plotly is the library that has set the benchmark for interactivity for all the available map-visualization python ...

    交互式数据可视化

    简介(我们将创建的内容): (Introduction (what we’ll create):)

    Plotly is the library that has set the benchmark for interactivity for all the available map-visualization python libraries. It is based on the JavaScript library D3.js. There’s hardly anything you can’t do with Plotly. Display data on hover, zoom into the map, pan the map, add buttons and sliders, create live animations, and the list goes on.

    Plotly是为所有可用的地图可视化python库设置了交互性基准的库。 它基于JavaScript库D3.js。 使用Plotly几乎没有什么可以做的。 在悬停上显示数据,放大地图,平移地图,添加按钮和滑块,创建实时动画,然后列表继续。

    This tutorial will introduce Plotly. We will make a Choropleth visualization in this tutorial, like the one shown below. However, Plotly can be used equally well for creating scatter visualizations. We will cover scatter visualizations using Plotly in the ‘Plotly + Mapbox’ tutorial and the ‘Plotly + Datashader’ tutorial.

    本教程将介绍Plotly。 我们将在本教程中进行Choropleth可视化,如下图所示。 但是,Plotly可以很好地用于创建散点图。 我们将在“ Plotly + Mapbox”教程“ Plotly + Datashader”教程中使用Plotly涵盖散点图。

    本教程的结构: (Structure of the tutorial:)

    The tutorial is structured into the following sections:

    本教程分为以下几节:

    1. Pre-requisites

      先决条件

    2. Installing Plotly

      剧情安装

    3. Converting shapefile to GeoJSON

      将shapefile转换为GeoJSON

      Converting shapefile to GeoJSON

      将shapefile转换为GeoJSON

      -

      --

      Method 1: Using OGR

      方法1:使用OGR

      Method 1: Using OGR

      方法1:使用OGR

      -

      --

      Method 2: Using GeoPandas

      方法2:使用GeoPandas

    4. Getting started with the tutorial

      教程入门

    5. When to use this library

      何时使用此库

    先决条件: (Pre-requisites:)

    This tutorial assumes that you are familiar with python and that you have python downloaded and installed in your machine. If you are not familiar with python but have some experience of programming in some other languages, you may still be able to follow this post, depending on your proficiency.

    本教程假定您熟悉python,并且已在计算机中下载并安装了python。 如果您不熟悉python,但有一些使用其他语言进行编程的经验,则根据您的熟练程度,仍然可以继续阅读此文章。

    It is recommended, but not necessary, that you go through the GeoPandas tutorial to get an overall idea of shapefiles.

    建议(但不是必须)您通过GeoPandas教程来获得shapefile的整体概念。

    Plotly安装: (Installing Plotly:)

    If you are using Anaconda, you can run:

    如果您正在使用Anaconda,则可以运行:

    conda install -c plotly plotly=4.8.1

    Otherwise, you can try the pip installer:

    否则,您可以尝试使用pip安装程序:

    pip install plotly==4.8.1

    For more information related to the installation, you can see https://plotly.com/python/getting-started/

    有关与安装有关的更多信息,请参见https://plotly.com/python/getting-started/

    将shapefile转换为GeoJSON: (Converting shapefile to GeoJSON:)

    Unlike GeoPandas, plotly doesn’t read shapefiles. Instead, it requires a GeoJSON file for reading the geometry and attributes of the relevant shapes. If you have a GeoJSON file available, you can skip this section.

    与GeoPandas不同,plotly不读取shapefile。 相反,它需要一个GeoJSON文件来读取相关形状的几何形状和属性。 如果您有可用的GeoJSON文件,则可以跳过此部分。

    If you don’t have a GeoJSON file directly, you can convert a shapefile to GeoJSON.

    如果您没有直接的GeoJSON文件,则可以将shapefile转换为GeoJSON。

    We will discuss two methods of converting a shapefile to GeoJSON.

    我们将讨论将shapefile转换为GeoJSON的两种方法。

    方法1:使用OGR (Method 1: Using OGR)

    This is the method that has been shown in the notebook. It makes use of the Geospatial Data Abstraction Library (GDAL). Actually, to be more specific, it makes use of the OGR library, which comes along with GDAL, to perform manipulations on geospatial vector data. For more information on GDAL, see https://pypi.org/project/GDAL/.

    这是笔记本中显示的方法。 它利用了地理空间数据抽象库(GDAL)。 实际上,更具体地说,它利用GDAL附带的OGR库对地理空间矢量数据执行操作。 有关GDAL的更多信息,请参见https://pypi.org/project/GDAL/

    Once you have GDAL installed, import ogr and call the ESRI Shapefile driver.

    安装GDAL后,导入ogr并调用ESRI Shapefile驱动程序。

    import ogr#We used compressed shapefiles obtained from mapshaper.org
    driver = ogr.GetDriverByName('ESRI Shapefile')shp_path = 'shape_files\\India_States_2020_compressed\\India_states.shp'data_source = driver.Open(shp_path, 0)

    Here, you can see that we are using compressed shapefiles. This is because the visualizations generated by plotly tend to be very heavy, and their size is directly proportional to the size of the geospatial data. So if our shapefile size gets reduced by 50%, the visualization size also gets reduced by approximately the same proportion. So we took our original shapefiles and performed compression on them using the online tool https://mapshaper.org/. To know more about how to perform the conversions using mapshaper, click here. The compressed shapefile sizes are approximately 10% of the original.

    在这里,您可以看到我们正在使用压缩的shapefile。 这是因为通过散点图生成的可视化效果往往非常繁重,并且其大小与地理空间数据的大小成正比。 因此,如果我们的shapefile大小减少了50%,则可视化文件的大小也将减少大约相同的比例。 因此,我们采用了原始的shapefile,并使用在线工具https://mapshaper.org/对它们进行了压缩。 要了解有关如何使用mapshaper进行转换的更多信息, 请单击此处 。 压缩的shapefile大小约为原始大小的10%。

    Once we have the shapefiles opened, we extract the individual features (including geometry and attributes) and store them in the correct JSON format (this is done directly by the ExportToJson method). Once that is done, we dump the JSON file to local storage.

    打开shapefile后,我们将提取单个特征(包括几何和属性)并将其存储为正确的JSON格式(这直接由ExportToJson方法完成)。 完成后,我们将JSON文件转储到本地存储。

    fc = {
    'type': 'FeatureCollection',
    'features': []
    }lyr = data_source.GetLayer(0)
    for feature in lyr:
    fc['features'].append(feature.ExportToJson(as_object=True))with open('json_files\\India_States_2020_compressed.json', 'w') as f:
    json.dump(fc, f)

    方法2:使用GeoPandas (Method 2: Using GeoPandas)

    This method is much more straightforward.

    此方法更加简单。

    import geopandas as gpd# set the filepath and load
    fp = "shape_files\\India_States_2020_compressed\\India_States.shp"#reading the file stored in variable fp
    map_df = gpd.read_file(fp)#Export it as GeoJSON
    map_df.to_file("json_files\\India_States_2020_compressed_gpd.json", driver='GeoJSON')

    You just need to read the shapefile using GeoPandas and then export it to GeoJSON using a single line, by specifying the driver as ‘GeoJSON’. However, the GeoJSON files created with this method tend to be slightly larger in size. For instance, for the same shapefile, the GeoJSON file created using OGR was 800 KB large while the one created using GeoPandas was 900 KB large. That’s about a 12.5% higher size using GeoPandas.

    您只需要使用GeoPandas读取shapefile,然后通过将驱动程序指定为'GeoJSON',即可使用一行将其导出到GeoJSON。 但是,使用此方法创建的GeoJSON文件的大小往往会稍大。 例如,对于同一个shapefile,使用OGR创建的GeoJSON文件大800 KB,而使用GeoPandas创建的GeoJSON文件大900 KB。 使用GeoPandas的大小大约增加了12.5%。

    教程入门: (Getting started with the tutorial:)

    GitHub repo: https://github.com/carnot-technologies/MapVisualizations

    GitHub回购: https : //github.com/carnot-technologies/MapVisualizations

    Relevant notebook: PlotlyChoroplethDemo.ipynb

    相关笔记本: PlotlyChoroplethDemo.ipynb

    View notebook on NBViewer: Click Here

    在NBViewer上查看笔记本: 单击此处

    导入相关软件包: (Importing relevant packages:)

    import numpy as np
    import pandas as pd
    import plotly.express as px
    import json
    import ogr
    # import geopandas as gpd

    As can be seen from the import packages, we will be using plotly.express to create the visualization.

    从导入包中可以看出,我们将使用plotly.express创建可视化文件。

    了解GeoJSON文件: (Understanding the GeoJSON file:)

    Now that we have the GeoJSON file, let’s open it.

    现在我们有了GeoJSON文件,让我们打开它。

    with open('json_files\\India_States_2020_compressed.json') as f:
    India_states = json.load(f)

    You will see that the properties key for each feature holds the name for that feature, which, in our case, are the various states.

    您将看到每个功能的属性键都具有该功能的名称,在我们的例子中,是各种状态。

    India_states["features"][0]['properties']>> {'dtname': 'North  & Middle Andaman',
    'stcode11': '35',
    'dtcode11': '639',
    'year_stat': '2011_c',
    'Dist_LGD': 632,
    'State_LGD': 35,
    'JID': 178,
    'state_name': 'ANDAMAN & NICOBAR',
    'FID': 0}

    Let us dig deeper into the geometry and have a look at one lat-lon pair:

    让我们更深入地研究几何,看看一对纬度:

    India_states["features"][0]['geometry']['coordinates'][0][0][0]>> [93.7, 7.22]

    As you can see, we have coordinates accurate up to 2 decimal places, or about 1.1 km, which is more than sufficient for us.

    如您所见,我们的坐标精确到小数点后2位(约1.1公里),对我们来说已经足够了。

    加载数据并创建可视化文件: (Loading the data and creating the visualization:)

    We will use the state_dummy_data_no_null.csv file present in the data folder. We will revisit the ‘no-null’ part shortly.

    我们将使用数据文件夹中存在的state_dummy_data_no_null.csv文件。 我们将在短期内重新讨论“无空”部分。

    #Load the csv file and check its contents. 
    #Make sure that there is one entry for each state in the geojson

    df = pd.read_csv('data/state_dummy_data_no_null.csv')
    df.head()

    Now, with plotly express, generating the visualization is boils down to just a couple of lines of code.

    现在,使用plotly express,生成可视化过程可以归结为几行代码。

    max_value = df['count'].max()
    fig = px.choropleth(df, geojson=India_states, locations='st_nm',
    color='count',
    color_continuous_scale="Viridis",
    range_color=(0, max_value),
    featureidkey="properties.state_name",
    projection="mercator"
    )fig.update_geos(fitbounds="locations", visible=False)
    fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
    fig.show()

    Here, we are specifying df as the dataframe of interest. India_states is the GeoJSON file. st_nm column in df is the relevant column containing the names of the states for which we have data. We want the coloring of each shape to happen according to the count column in df, with the range upper-bound at the max value of count Now, in the GeoJSON, the property which contains the names corresponding to the locations field is state_name . Finally the map projection will be mercator . You can get the list of map projections along with their interpretations on Wikipedia.

    在这里,我们将df指定为感兴趣的数据帧。 India_states是GeoJSON文件。 df中的st_nm列是相关列,其中包含我们拥有数据的州的名称。 我们希望根据df中的count列对每种形状进行着色,范围上限在count的最大值处。现在,在GeoJSON中,包含与location字段相对应的名称的属性为state_name 。 最后,地图投影将成为mercator 。 您可以在Wikipedia上获取地图投影列表及其解释。

    Now, we want the visualization to be limited only to the locations of interest, and not span the lat-lon range of the entire world. That is achieved by setting the fitbounds= “locations” in the update_geos method. To get the list of all arguments of the update_geos method, click here. Finally, we set all margins to zero and display our visualization. To get the list of all arguments of the update_layout method, click here. Do explore the different arguments of the update_geos and the update_layout methods. There’s a lot you can do with them. Congratulations on your first interactive visualization. Take your time and play around with it!

    现在,我们希望将可视化仅限于感兴趣的位置,而不要覆盖整个世界的经纬度范围。 这可以通过在update_geos方法中设置fitbounds= “locations”来实现。 要获取update_geos方法的所有参数的列表, 请单击此处 。 最后,我们将所有边距设置为零并显示可视化。 要获取update_layout方法的所有参数的列表, 请单击此处 。 请探索update_geos和update_layout方法的不同参数。 您可以为他们做很多事情。 恭喜您首次互动可视化。 慢慢来玩吧!

    Please note that plotly express is a higher-level library. If you need a lower level library with enhanced control, you can switch to plotly graph objects. See the references for more information.

    请注意,plotly express是更高级别的库。 如果需要具有增强控件的较低级库,则可以切换到可绘制图形对象。 有关更多信息,请参见参考。

    Image for post

    Now, let us visit the no_null part. We have explicitly made sure that data corresponding to each shape in the GeoJSON is present in the CSV. Where there was no data present, we have added a 0 for the count. Why? Because plotly renders only those shapes for which some data is present. Let us plot only the first 25 rows of the dataframe, taking df.head(25) . The resulting visualization looks like this:

    现在,让我们访问no_null部分。 我们已明确确保在CSV中存在与GeoJSON中每个形状相对应的数据。 如果没有数据,我们将计数添加为0。 为什么? 因为plotly仅渲染那些存在某些数据的形状。 让我们仅绘制数据帧的前25行,取为df.head(25) 。 产生的可视化效果如下所示:

    Image for post

    Now, you certainly don’t want this kind of visualization, especially when there is no background to provide context. We will, however, make good use of the null shapes, when we add a background to the visualization using Mapbox. Till then, you better include data for all shapes. To get a list of all the shape names in the GeoJSON, you can learn the following loop:

    现在,您当然不希望这种可视化,尤其是在没有背景可提供上下文的情况下。 但是,当使用Mapbox向可视化添加背景时,我们充分利用null形状。 到那时,您最好包括所有形状的数据。 要获取GeoJSON中所有形状名称的列表,您可以学习以下循环:

    for i in range(0, len(India_states["features"])):
    print(India_states["features"][i]["properties"]["state_name"])

    This will also help you identify any spelling and case differences between the shape names in your data and the shape names in the GeoJSON.

    这还将帮助您识别数据中的形状名称与GeoJSON中的形状名称之间的任何拼写和大小写差异。

    保存可视化: (Saving the visualization:)

    Once you are ready with your visualization, you can export it as a standalone HTML file, to share with your friends without sharing the source code, or to include in your website.

    准备好可视化后,您可以将其导出为独立HTML文件,与您的朋友共享而不共享源代码,或包含在您的网站中。

    fig.write_html('html_files\\plotly_choropleth_demo.html')

    You can also push these visualizations to Chart Studio and then get a direct embed link for your blog or website. We’ll discuss that in the Plotly with Mapbox tutorial.

    您还可以将这些可视化效果推送到Chart Studio,然后直接为您的博客或网站嵌入链接。 我们将在Plotly with Mapbox教程中进行讨论。

    何时使用此库: (When to use this library:)

    This library is incredibly powerful. But its power comes at a cost: file size. If you need an interactive visualization, just use this library without a thought. However, if you are going to add the visualization in a PDF report, or in a static presentation, you can still use plotly and download the visualization as a PNG, but it will consume higher resources compared to a library like GeoPandas.

    这个库非常强大。 但是其功能是有代价的:文件大小。 如果您需要交互式的可视化效果,则无需考虑即可使用该库。 但是,如果要在PDF报表或静态演示文稿中添加可视化文件,则仍然可以使用plotly并将可视化文件下载为PNG,但是与GeoPandas之类的库相比,它将消耗更多资源。

    We are trying to fix some broken benches in the Indian agriculture ecosystem through technology, to improve farmers’ income. If you share the same passion join us in the pursuit, or simply drop us a line on report@carnot.co.in

    我们正在尝试通过技术修复印度农业生态系统中一些破烂的长凳 ,以提高农民的收入。 如果您有同样的热情,请加入我们的行列或者直接给我们写信至report@carnot.co.in

    翻译自: https://medium.com/tech-carnot/interactive-map-based-visualization-using-plotly-44e8ad419b97

    交互式数据可视化

    展开全文
  • 1 说明:=====1.1 SnakeViz:一个基于浏览器的 Python's cProfile 模块输出结果查看工具。1.2 SnakeViz是用于Python分析数据...1.4 它使用d3.js生成配置文件结果的交互式可视化。1.5 snakeviz简单、直接、美观;pyt...

    1 说明:

    =====

    1.1 SnakeViz:一个基于浏览器的 Python's cProfile 模块输出结果查看工具。

    1.2 SnakeViz是用于Python分析数据的查看器,该数据在浏览器中作为Web应用程序运行。

    1.3 它受到wxPython配置文件查看器RunSnakeRun的启发。

    1.4 它使用d3.js生成配置文件结果的交互式可视化。

    1.5 snakeviz简单、直接、美观;python的图形化分析原始文件:目前推荐snakeviz。

    1.6 是一个性能/耗时分析工具。

    79cbbff92de7a9f22796a58317d88ec5.png

    今天是高考,祝同学们加油!

    2 准备:

    =====

    2.1 环境:

    华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。

    2.2 官网:

    https://github.com/jiffyclub/snakeviz

    https://jiffyclub.github.io/snakeviz/

    https://pypi.org/project/snakeviz/

    2.3 安装:

    pip install snakeviz

    #本机安装

    sudo pip3.8 install snakeviz

    2.4 提醒WARNING:

    WARNING: The script snakeviz is installed in '/usr/local/python3.8/bin' which is not on PATH.

    Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

    2.5 建立软连接:本机

    sudo ln -s /usr/local/python3.8/bin/snakeviz /usr/bin/snakeviz

    3 获取帮助:

    ========

    3.1 终端输入:

    snakeviz -h

    3.2 图:

    e298231beab3023ed3a75b12bf8db16a.png

    4 举例:

    =====

    4.1 result.py代码:对它进行分析

    import pygal

    bar_chart = pygal.Bar()

    data0=[0, 1, 1, 2, 3, 5, 8, 13]

    data1=[55, 34, 21, 13, 8, 5, 3, 2]

    labels=['Firsrt组','Second组']

    bar_chart.add(labels[0], data0)

    bar_chart.add(labels[1], data1)

    bar_chart.render_to_file('/home/xgj/Desktop/SnakeViz/bar_chart.svg')

    4.2 先需要生成resultn.prof文件:

    在脚本result.py所在的目录下打开终端

    python3.8 -m cProfile -o resultn.prof result.py

    4.3 操作示范:

    02fba564f0e392a5f7fcf5ec7231183c.png

    4.4 然后继续,在终端输入:

    snakeviz resultn.prof

    4.5 操作示范:从上到下是调用堆栈,显示了文件名、函数名及其行号,以及该方法花费的时间。

    43e00beacc6385dcad6f0d31bfd4c4ba.png

    4.6 附几张图:

    f4c2eef11e7e57ac85ce4fa4fb673baf.png

    71a9058ba274de81e1a283876be9ee27.png

    95ae3a49853e49290cf9148f9dd420b8.png

    ===自己整理并分享出来===

    喜欢的就点赞、评论、关注、转发和收藏。

    展开全文
  • 本篇为《Python数据可视化实战》第十篇文章,我们一起学习一个交互式可视化Python库——Bokeh。Bokeh基础Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。这是Bokeh与其它可视化库最核心的区别。...
  • flask交互式数据可视化 您是否曾经想创建一个交互式数据可视化地图? 在我最近的副项目中,我创建了一个非常酷的可视化工具,以了解病毒如何在美国传播。 如果您想查看完成的站点,可以单击此处: ...
  • Ruby代码(轨道或其他代码)的可视化工具,它分析您的代码并提取模块定义和使用的类/模块,并使用D3将所有这些信息呈现为有向力图。 注意: 从2.0.0版本开始,该项目不再是http服务器,它会生成一个自包含HTML文件...
  • Bokeh是一个专门针对Web浏览器使用的交互式可视化库,这是与其他可视化库相比最核心的区别。 如何通过Plotting绘制图形 Plotting是以构建视觉符号为核心的接口,可以结合各种视觉元素(例如,点、圆、线等其他元素...
  • 机器学习交互式可视化 由Jupyter和制作的交互式仪表板。 用户可以玩弄类不平衡,模型强度或截止值之类的参数,并观察对ROC / AUC或精度/精度/召回率等度量的影响。 现在可以和现场直播。 从此复制了一些代码。 ...
  • 这种算是属于简单的交互式可视化吧。我之前就有一个想法, 可以跟网页上的标签一样,鼠标悬停在点上,可以显示数据,同时可以进行拉伸等操作。但是没有找到合适的库。 昨天和今天看了两个关于自然语言处理的文章[1]...
  • 警告 这没有得到维护:该项目正在其他地方恢复。
  • 数据可视化 Pandas 创建表示数据中全局模式的 在本文中,我们将研究在数据中呈现全局模式的的背景,例如: 显示数据中各个特征的方差的图表,例如直方 显示数据中存在的不同特征彼此之间如何变化的,例如...
  • 本篇为《Python数据可视化实战》第十篇文章,我们一起学习一个交互式可视化Python库——Bokeh。 Bokeh基础 Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。这是Bokeh与其它可视化库最核心的区别。 ...
  • Blast Radius是使用交互式可视化工具推理依赖的工具。 使用爆炸半径可以: 通过实际了解Terraform或其提供商 记录您的基础架构 关于资源之间关系的原因并评估对资源的更改 与的下(以及其他许多)交互 先决...
  • 交互式数据可视化的目的是可视地和交互式地呈现数据,以便于理解。 因此,自然地,数据是任何可视化中最重要的因素。 因此,数据可视化的第一阶段是了解您面前的数据–了解其含义,含义以及所传达的内容。 只有了解...
  • 数据可视化 Pandas 使用Pandas DataFrame处理数据 pandas库是用于处理,操作和分析结构化数据的功能极为丰富的开源工具包。 数据表可以存储在熊猫可用的DataFrame对象中,并且可以将多种格式的数据(例如.csv,.tsv...
  • 在您的Web浏览器中运行的交互式图形可视化系统。 无需安装。 文件资料 功能亮点 交互式图形可视化 通过交互式力导向布局可视化图形,通过pagerank自动调整大小和着色,并完全控制每个节点以进行自定义! 增量探索...
  • python调用echart交互式可视化

    万次阅读 多人点赞 2018-03-04 19:07:00
    echart 是一款十分流行的JS交互式绘图,而pyhton如何使用echart? 参考pyechart文档:http://pyecharts.org/#/zh-cn/ 必要时,可以根据自己的需求,修改pyechart的源码 Bar(柱状/条形) import pandas...
  • Inviwo-交互式可视化研讨会 Inviwo是用于快速可视化原型制作的软件框架。 软件包版本和信息可在上获得。 以下是有关该框架的一些常规信息: 根据简化的BSD许可免费提供。 跨平台,可在Windows,Linux和Mac OS X...
  • 设计了面向对象的可视化图形对象以利于交互可视化的实现;并用SVG脚本语言实现了用户与图形的交互以及可视化结果与服务的交互。实验结果表明,基于SVG的可视化方案能够满足生物信息数据的Web可视化需求。
  • DBLHTI Web应用程序,它允许上载分层数据并将数据显示为树图和圆形系统发生树。 图书馆 -烧瓶-ete3-散景0.13.0 -biopython -squarify -numpy -plotly -pandas 用法 可以使用python3在终端上运行app.py。...
  • 它分析你的代码,并提取模块的定义和使用的类/模块,并使用D3呈现所有这些信息为有向力图。
  • plotly和经典Matplotlib最大的不同是plotly可以生成交互式的数据图表。Matplotlib生成的图示静态(死)的,而plotly是活的,具体方式是plotly可以生成一个html网页,该网页基于js支持数据交互(点击、缩放、拖拽...
  • 学习IPython进行交互式计算和数据可视化学习在Jupyter Notebook中的Python中安装Anaconda和代码交互加载和浏览数据集通过熊猫有效执行复杂的数据操作使用matplotlib和seaborn创建引人入胜的数据可视化使用NumPy模拟...
  • Bokeh 0.12.3rc2 发布了,Bokeh (Bokeh.js) 是一个 Python 交互式可视化库,支持现代化 Web 浏览器,提供非常完美的展示功能。Bokeh 的目标是使用 D3.js 样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的...
  • speedscope一个基于Web的交互式火焰图可视化
  • Part4 交互式可视化dash_core_components库包含一个名为Graph的组件dcc.Graph组件具有四个可以通过用户交互进行更改的属性:hoverData,clickData,selectedData,relayoutData。当将鼠标悬停、单击点或在图形中选择...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,536
精华内容 614
关键字:

交互式可视化图