Plotly快速指南

Plotly是一家总部位于蒙特利尔的技术计算公司,参与开发数据分析和可视化工具,如Dash和ChartStudio。它还为Python、R、MATLAB、Javascript和其他计算机编程语言开发了开源图形应用程序编程接口(API)库。

本章重点介绍如何借助Plotly在Python中进行环境设置。

始终建议使用Python的虚拟环境功能来安装新包。以下命令在指定的文件夹中创建一个虚拟环境。

python-mmyenv要激活如此创建的虚拟环境,请在bin子文件夹中运行activate脚本,如下所示。

sourcebin/activate现在我们可以使用pip实用程序安装plotly的Python包,如下所示。

pipinstallplotly您可能还想安装Jupyter笔记本应用程序,它是Ipython解释器的基于Web的界面。

接下来,从仪表板的设置页面获取API密钥。

使用您的用户名和API密钥在Python解释器会话中设置凭据。

importplotly.plotlyaspyimportplotly.graph_objsasgoplotly.plotly模块包含帮助我们与Plotly服务器通信的功能。plotly.graph_objs模块中的函数生成图形对象

下一章涉及在线和离线绘图的设置。让我们首先研究在线绘图的设置。

在线绘图的数据和图表保存在您的plot.ly帐户中。在线绘图由两种方法生成,这两种方法都会为绘图创建一个唯一的url并将其保存在您的Plotly帐户中。

importnumpyasnpimportmath#neededfordefinitionofpixpoints=np.arange(0,math.pi*2,0.05)ypoints=np.sin(xpoints)接下来,使用graph_objs模块中的Scatter()函数创建散点跟踪。

trace0=go.Scatter(x=xpoints,y=ypoints)data=[trace0]使用上面的列表对象作为plot()函数的参数。

py.plot(data,filename='Sinewave',auto_open=True)将以下脚本另存为plotly1.py

importplotlyplotly.tools.set_credentials_file(username='lathkar',api_key='********************')importplotly.plotlyaspyimportplotly.graph_objsasgoimportnumpyasnpimportmath#neededfordefinitionofpixpoints=np.arange(0,math.pi*2,0.05)ypoints=np.sin(xpoints)trace0=go.Scatter(x=xpoints,y=ypoints)data=[trace0]py.plot(data,filename='Sinewave',auto_open=True)从命令行执行上述脚本。结果图将显示在浏览器中指定的URL处,如下所述。

在显示的图表上方,您会找到绘图、数据、Python和Rand分叉历史选项卡。

Plotly允许您离线生成图形并将它们保存在本地机器中。该plotly.offline.plot()函数创建一个保存在本地和Web浏览器里面打开一个独立的HTML。

在JupyterNotebook中离线工作时使用plotly.offline.iplot()以在Notebook中显示绘图。

更改脚本中的plot()函数语句并运行。一个名为temp-plot.html的HTML文件将在本地创建并在Web浏览器中打开。

在本章中,我们将学习如何使用JupyterNotebook进行内联绘图。

fromplotly.offlineimportinit_notebook_modeinit_notebook_mode(connected=True)保持脚本的其余部分不变,然后按Shift+Enter运行笔记本单元。图表将在笔记本内部离线显示。

绘图输出在右上角显示一个工具栏。它包含用于下载为png、放大和缩小、框和套索、选择和悬停的按钮。

该plotly.plotly模块包含需要从Plotly的服务器的响应功能。该模块中的函数是本地机器和Plotly之间的接口。

所有图形对象都是类似字典和列表的对象,用于生成和/或修改Plotly图的每个特征。

该plotly.tools模块包含了许多有用的功能,促进和提高Plotly经验。此模块中定义了子图生成、在IPython笔记本中嵌入Plotly图、保存和检索您的凭据的函数。

importplotly.graph_objsasgofig=go.Figure(data,layout,frames)该数据参数是一个Python列表对象。它是您希望绘制的所有轨迹的列表。轨迹只是我们给要绘制的数据集合的名称。一个跟踪对象是根据你想如何绘制表面上的数据显示命名。

Plotly提供了许多跟踪对象,例如scatter、bar、pie、heatmap等,每个都由graph_objs函数中的各个函数返回。例如:go.scatter()返回散点跟踪。

importnumpyasnpimportmath#neededfordefinitionofpixpoints=np.arange(0,math.pi*2,0.05)ypoints=np.sin(xpoints)trace0=go.Scatter(x=xpoints,y=ypoints)data=[trace0]的布局参数定义图的外观,以及情节特征,其是无关的数据。因此,我们将能够更改标题、轴标题、注释、图例、间距、字体甚至在绘图顶部绘制形状等内容。

layout=go.Layout(title="Sinewave",xaxis={'title':'angle'},yaxis={'title':'sine'})一个图可以有图标题和轴标题。它还可能有注释以指示其他描述。

最后,还有一个由go.Figure()函数创建的Figure对象。它是一个类似字典的对象,包含数据对象和布局对象。最终绘制图形对象。

Orca代表开源报告创建者应用程序。它是一个Electron应用程序,可从命令行生成绘图、破折号应用程序、仪表板的图像和报告。Orca是Plotly图像服务器的支柱。

psutil(python系统和进程实用程序)是一个跨平台库,用于在Python中检索有关正在运行的进程和系统利用率的信息。它实现了UNIX命令行工具提供的许多功能,例如:ps、top、netstat、ifconfig、who等。psutil支持所有主要操作系统,例如Linux、Windows和MacOs

condainstall-cplotlyplotly-orcapsutil因为,orca在PyPi存储库中不可用。您可以改为使用npm实用程序来安装它。

要将Figure对象导出为png、jpg或WebP格式,首先,导入plotly.io模块

pio.write_image(fig,‘sinewave.png’)pio.write_image(fig,‘sinewave.jpeg’)pio.write_image(fig,’sinewave.webp)orca工具还支持导出为svg、pdf和eps格式。

默认情况下,具有多条轨迹的Plotly图表会自动显示图例。如果它只有一条迹线,则不会自动显示。要显示,请将Layout对象的showlegend参数设置为True。

layout=go.Layoyt(showlegend=True)图例的默认标签是跟踪对象名称。要设置图例标签,请显式设置跟踪的名称属性。

在以下示例中,绘制了两个具有name属性的散点轨迹。

您可以通过指定线宽和颜色来配置每个轴的外观。也可以定义网格宽度和网格颜色。让我们在本章中详细了解相同的内容。

在Layout对象的属性中,将showticklabels设置为true将启用刻度。tickfont属性是一个dict对象,指定字体名称、大小、颜色等。tickmode属性可以有两个可能的值——线性和数组。如果它是线性的,则起始刻度的位置由tick0决定,刻度之间的步进由dtick属性决定。

如果tickmode设置为数组,则必须提供值和标签列表作为tickval和ticktext属性。

我们现在通过指定线条、网格和标题字体属性以及刻度模式、值和字体来格式化上面示例中的Layout对象以配置x和y轴。

有时在图形中具有双x或y轴很有用;例如,一起绘制具有不同单位的曲线时。Matplotlib支持这一与twinx和twiny功能。在以下示例中,该图具有双y轴,一个显示exp(x),另一个显示log(x)

在这里,我们将了解Plotly中的subplots和insetplots的概念。

有时,并排比较不同的数据视图会很有帮助。这支持子图的概念。它在plotly.tools模块中提供make_subplots()函数。该函数返回一个Figure对象。

以下语句在一行中创建两个子图。

fig=tools.make_subplots(rows=1,cols=2)我们现在可以向图中添加两个不同的跟踪(上面示例中的exp和log跟踪)。

fig.append_trace(trace1,1,1)fig.append_trace(trace2,1,2)通过使用update()方法指定标题、宽度、高度等进一步配置图形的布局。

fromplotlyimporttoolsimportplotly.plotlyaspyimportplotly.graph_objsasgofromplotly.offlineimportiplot,init_notebook_modeinit_notebook_mode(connected=True)importnumpyasnpx=np.arange(1,11)y1=np.exp(x)y2=np.log(x)trace1=go.Scatter(x=x,y=y1,name='exp')trace2=go.Scatter(x=x,y=y2,name='log')fig=tools.make_subplots(rows=1,cols=2)fig.append_trace(trace1,1,1)fig.append_trace(trace2,1,2)fig['layout'].update(height=600,width=800,title='subplot')iplot(fig)这是绘图网格的格式:[(1,1)x1,y1][(1,2)x2,y2]

trace2=go.Scatter(x=x,y=y2,xaxis='x2',yaxis='y2',name='log')其次,配置Layout对象,其中插入的x和y轴的位置由指定相对于长轴的位置的域属性定义。

在本章中,我们将学习如何在Plotly的帮助下制作条形图和饼图。让我们从了解条形图开始。

条形图使用矩形条显示分类数据,矩形条的高度或长度与其所代表的值成正比。条可以垂直或水平显示。它有助于显示离散类别之间的比较。图表的一个轴显示正在比较的特定类别,另一个轴表示测量值。

以下示例绘制了一个关于注册不同课程的学生人数的简单条形图。该go.Bar()函数返回以x酒吧跟踪坐标集为主题列表,y坐标为学生人数。

要显示分组条形图,必须将Layout对象的barmode属性设置为group。在以下代码中,代表每年学生的多条轨迹针对科目绘制并显示为分组条形图。

所述barmode属性确定如何在相同的位置坐标条被显示在图表上。定义的值是“堆叠”(条形堆叠在另一个顶部),“相对”,(条形堆叠在另一个顶部,轴下方为负值,轴上方为正值),“组”(条形图旁边绘制另一个)。

饼图仅显示一系列数据。饼图显示一个数据系列中项目(称为楔形)的大小,与项目的总和成正比。数据点显示为整个饼图的百分比。

甜甜圈图是一个饼图,中间有一个圆孔,使它看起来像一个甜甜圈。在以下示例中,两个圆环图以1X2网格布局显示。虽然两个饼图的“标签”布局相同,但每个子图的行和列目标由域属性决定。

本章重点介绍散点图、散点图和气泡图的详细信息。首先,让我们研究散点图。

散点图用于在水平轴和垂直轴上绘制数据点,以显示一个变量如何影响另一个变量。数据表中的每一行都由一个标记表示,其位置取决于其在X轴和Y轴上设置的列中的值。

graph_objs模块(go.Scatter)的scatter()方法产生散点轨迹。在这里,模式属性决定了数据点的外观。mode的默认值是lines,它显示连接数据点的连续线。如果设置为marker,则仅显示由小实心圆圈表示的数据点。当模式指定为“线+标记”时,圆和线都会显示。

在以下示例中,绘制笛卡尔坐标系中三组随机生成的点的散点轨迹。下面解释了以不同模式属性显示的每个轨迹。

WebGL(Web图形库)是一种JavaScriptAPI,用于在任何兼容的Web浏览器中渲染交互式2D和3D图形,而无需使用插件。WebGL与其他Web标准完全集成,允许图形处理单元(GPU)加速使用图像处理。

Plotly您可以使用Scattergl()代替Scatter()来实现WebGL,以提高速度、改进交互性以及绘制更多数据的能力。该go.scattergl()函数,它给出了当涉及大量的数据点的更好的性能。

气泡图显示数据的三个维度。每个实体及其关联数据的三个维度被绘制为一个圆盘(气泡),通过圆盘的xy位置表示其中两个维度,通过其大小表示第三个维度。气泡的大小由第三个数据系列中的值决定。

气泡图是散点图的一种变体,其中数据点被气泡替换。如果您的数据具有如下所示的三个维度,那么创建气泡图将是一个不错的选择。

气泡图是使用go.Scatter()跟踪生成的。上述数据系列中的两个作为x和y属性给出。第三维由标记显示,其大小代表第三个数据系列。在上述情况下,我们使用产品和销售作为x和y属性,市场份额作为标记大小。

在JupyterNotebook中输入以下代码。

在这里,我们将学习Plotly中的点图和表格函数。首先,让我们从点图开始。

点图类似于水平条形图。但是,它们可以不那么混乱,并且可以更轻松地比较条件。该图绘制了一条散点轨迹,模式属性设置为标记。

以下示例显示了印度独立后每次人口普查中记录的男性和女性识字率的比较。图中的两条轨迹代表了1951年至2011年每次人口普查中男性和女性的识字率。

Plotly的Table对象由go.Table()函数返回。表跟踪是一个图形对象,可用于在行和列的网格中查看详细数据。表使用列主序,即网格被表示为列向量的向量。

的两个重要参数go.Table()函数是首部,其是表和的第一行的细胞,其形成行的其余部分。这两个参数都是字典对象。headers的values属性是一个列标题列表和一个列表列表,每个列表对应一行。

进一步的样式定制由linecolor、fill_color、font和其他属性完成。

以下代码显示了最近结束的2019年板球世界杯循环赛阶段的积分表。

直方图需要bin(或bucket)将整个值范围划分为一系列区间——然后计算每个区间有多少值。bin通常指定为变量的连续、非重叠区间。垃圾箱必须相邻,并且通常大小相同。在箱子上方竖立一个矩形,其高度与频率(每个箱子中的病例数)成正比。

直方图跟踪对象由go.Histogram()函数返回。它的定制是通过各种参数或属性完成的。一个基本参数是x或y设置为列表、numpy数组或Pandas数据帧对象,这些对象将分布在bin中。

默认情况下,Plotly将数据点分布在自动调整大小的bin中。但是,您可以定义自定义bin大小。为此,您需要将autobins设置为false,指定nbins(bin数量)、其开始和结束值以及大小。

还有一个histfunc参数,其默认值为count。因此,bin上矩形的高度对应于数据点的计数。它可以设置为sum、avg、min或max。

本章重点详细了解各种绘图,包括箱形图、小提琴图、等高线图和箭袋图。最初,我们将从箱线图开始。

箱线图显示一组数据的摘要,其中包含最小值、第一四分位数、中位数、第三四分位数和最大值。在箱线图中,我们从第一个四分位数到第三个四分位数绘制一个方框。一条垂直线穿过中间的盒子。从表示上下四分位数之外的可变性的框垂直延伸的线称为须线。因此,箱线图也称为箱线图。胡须从每个四分位数到最小值或最大值。

要绘制箱形图,我们必须使用go.Box()函数。数据系列可以分配给x或y参数。因此,箱线图将水平或垂直绘制。在下面的示例中,某公司在其各个分支机构的销售数据被转换为水平箱线图。它显示了最小值和最大值的中位数。

所述go.Box()函数可以给出各种其它参数来控制箱线图的外观和行为。其中之一是boxmean参数。

该boxmean参数默认设置为true。因此,框的基础分布的平均值被绘制为框内的虚线。如果设置为sd,也会绘制分布的标准差。

在以下示例中,框线是用标准差和异常点绘制的。

小提琴图类似于箱线图,不同之处在于它们还显示了数据在不同值下的概率密度。小提琴图将包括数据中位数的标记和指示四分位距的框,如标准箱线图。叠加在此箱线图上的是核密度估计。与箱线图一样,小提琴图用于表示不同“类别”之间的变量分布(或样本分布)的比较。

小提琴图比普通箱线图提供更多信息。事实上,箱线图仅显示汇总统计数据,例如均值/中位数和四分位距,而小提琴图则显示了数据的完整分布。

小提琴跟踪对象由graph_objects模块中的go.Violin()函数返回。为了显示底层箱线图,boxplot_visible属性设置为True。同样,通过将meanline_visible属性设置为true,小提琴内会显示一条与样本均值相对应的线。

以下示例演示了如何使用plotly的功能显示小提琴图。

二维等高线图显示了一个二维数字阵列z的轮廓线,即,内插的行isovaluesz与。两个变量的函数的等高线是一条曲线,沿着该曲线该函数具有恒定值,因此该曲线连接等值的点。

如果您想查看某个值Z如何作为两个输入X和Y的函数而变化,使得Z=f(X,Y),则使用等高线图是合适的。两个变量的函数的等高线或等值线是函数沿其具有恒定值的曲线。

自变量x和y通常被限制在称为meshgrid的规则网格中。numpy.meshgrid从x值数组和y值数组中创建一个矩形网格。

让我们首先使用Numpy库中的linspace()函数为x、y和z创建数据值。我们从x和y值创建一个网格,并获得由x2+y2的平方根组成的z数组

我们在graph_objects模块中有go.Contour()函数,它接受x、y和z属性。以下代码片段显示了如上计算的x、y和z值的等高线图。

如果xtype(或ytype)等于“array”,则x/y坐标由“x”/“y”给出。如果“缩放”,x坐标由“x0”和“dx”给出。

等高线类型默认为:“levels”,因此数据表示为显示多个级别的等高线图。如果为constrain,则数据表示为约束,其中无效区域按操作和值参数指定的阴影显示。

zauto默认为True并确定是否根据输入数据(此处为“z”)或在“zmin”和“zmax”中设置的边界计算颜色域。当“zmin”和“zmin”时,默认为“False”`zmax`由用户设置。

箭袋图也称为速度图。它将速度矢量显示为在点(x,y)处具有分量(u,v)的箭头。为了绘制Quiver图,我们将使用Plotly中的figure_factory模块中定义的create_quiver()函数。

Plotly的PythonAPI包含一个图形工厂模块,该模块包含许多包装函数,这些函数可以创建尚未包含在Plotly的开源图形库plotly.js中的独特图表类型。

在本章中,我们将详细了解distplots、密度图和误差条图。让我们从学习distplots开始。

distplot图工厂显示数值数据的统计表示的组合,例如直方图、核密度估计或正态曲线和地毯图。

所述figure_factory模块具有create_distplot()函数,其需要称为hist_data强制参数。

以下代码创建了一个基本的distplot,由直方图、kde图和rug图组成。

密度图是根据数据估计的直方图的平滑连续版本。最常见的估计形式称为核密度估计(KDE)。在这种方法中,在每个单独的数据点绘制一条连续曲线(内核),然后将所有这些曲线加在一起以进行单个平滑的密度估计。

模块plotly.figure_factory._2d_density中的create_2d_density()函数返回一个用于2D密度图的图形对象。

以下代码用于在直方图数据上生成二维密度图。

t=np.linspace(-1,1.2,2000)x=(t**3)+(0.3*np.random.randn(2000))y=(t**6)+(0.3*np.random.randn(2000))fig=ff.create_2d_density(x,y)iplot(fig)下面提到的是上面给出的代码的输出。

误差棒是数据中误差或不确定性的图形表示,它们有助于正确解释。出于科学目的,错误报告对于理解给定数据至关重要。

误差线对问题解决者很有用,因为误差线显示了一组测量值或计算值的置信度或精度。

大多数误差线代表数据集的范围和标准偏差。它们可以帮助可视化数据如何围绕平均值分布。可以在各种图上生成误差线,例如条形图、折线图、散点图等。

所述go.Scatter()函数具有error_x和error_y性质控制如何误差棒被生成。

trace=go.Scatter(x=[0,1,2],y=[6,10,2],error_y=dict(type='data',#valueoferrorbargivenindatacoordinatesarray=[1,2,3],visible=True))data=[trace]layout=go.Layout(title='SymmetricErrorBar')fig=go.Figure(data=data,layout=layout)iplot(fig)下面给出的是上述代码的输出。

热图(或热图)是数据的图形表示,其中包含在矩阵中的各个值以颜色表示。热图的主要目的是更好地可视化数据集中的位置/事件数量,并帮助将查看者引导至数据可视化中最重要的区域。

热图本质上是不言自明的。颜色越深,数量越大(数值越高,分散越紧等)。Plotly的graph_objects模块包含Heatmap()函数。它需要x、y和z属性。它们的值可以是列表、numpy数组或Pandas数据框。

在以下示例中,我们有一个2D列表或数组,用于将数据(不同农民的收获量,以吨/年为单位)定义为颜色代码。然后我们还需要两个农民和他们种植的蔬菜的名称列表。

在本章中,我们将学习如何在Plotly的帮助下制作极地图和雷达图。

首先,让我们研究一下极坐标图。

极坐标图是圆形图的常见变体。当数据点之间的关系可以根据半径和角度最容易地可视化时,它很有用。

在极坐标图中,一系列由连接极坐标系中的点的闭合曲线表示。每个数据点由到极点的距离(径向坐标)和到固定方向的角度(角坐标)确定。

极坐标图表示沿径向和角轴的数据。径向和角坐标由go.Scatterpolar()函数的r和theta参数给出。theta数据可以是分类数据,但数值数据也是可能的,并且是最常用的。

以下代码生成一个基本的极坐标图。除了r和theta参数,我们将mode设置为lines(它可以很好地设置为标记,在这种情况下只会显示数据点)。

雷达图(也称为蜘蛛图或星图)以定量变量的二维图表的形式显示多变量数据,该图表在源自中心的轴上表示。轴的相对位置和角度通常不提供信息。

对于雷达图,在一般情况下,在go.Scatterpolar()函数中使用带有分类角度变量的极坐标图。

本章重点介绍可以在Plotly的帮助下制作的其他三种类型的图表,包括OHLC、瀑布图和漏斗图。

用于演示OHLC图表的示例数据如下所示。它具有与对应日期字符串上的最高、最低、开盘和收盘值对应的列表对象。使用来自datetime模块的strtp()函数将字符串的日期表示形式转换为日期对象。

open_data=[33.0,33.3,33.5,33.0,34.1]high_data=[33.1,33.3,33.6,33.2,34.8]low_data=[32.7,32.7,32.8,32.6,32.8]close_data=[33.0,32.9,33.3,33.1,33.1]date_data=['10-10-2013','11-10-2013','12-10-2013','01-10-2014','02-10-2014']importdatetimedates=[datetime.datetime.strptime(date_str,'%m-%d-%Y').date()fordate_strindate_data]我们必须使用上面的日期对象作为x参数和其他参数作为返回OHLC跟踪的go.Ohlc()函数所需的开盘、高、低和收盘参数。

的烛图类似于OHLC图。它就像line-chart和bar-chart的组合。方框代表开盘价和收盘价之间的价差,线条代表低价和高价之间的价差。收盘价高于(低于)开盘价的样本点称为增加(减少)。

初始值和最终值显示为列,单独的负调整和正调整表示为浮动步骤。一些瀑布图将列之间的线连接起来,使图表看起来像一座桥梁。

s1=["Sales","Consulting","Netrevenue","Purchases","Otherexpenses","Profitbeforetax"]s2=[60,80,0,-40,-20,0]trace=go.Waterfall(x=s1,y=s2,base=200,measure=["relative","relative","total","relative","relative","total"])data=[trace]fig=go.Figure(data=data)iplot(fig)下面提到的输出是上面给出的代码的结果。

漏斗图表示业务流程不同阶段的数据。它是商业智能中识别流程潜在问题区域的重要机制。漏斗图用于可视化数据在从一个阶段传递到另一个阶段时如何逐渐减少。每个阶段中的数据表示为100%(整体)的不同部分。

与饼图一样,漏斗图也不使用任何轴。它也可以被视为类似于堆积百分比条形图。任何漏斗都由称为头部(或底部)的较高部分和称为颈部的较低部分组成。漏斗图最常见的用途是可视化销售转化数据。

Plotly的go.Funnel()函数产生漏斗轨迹。要提供给此函数的基本属性是x和y。它们中的每一个都被分配了一个Python项目列表或一个数组。

本章将提供有关3D(3D)ScatterPlot和3DSurfacePlot以及如何在Plotly的帮助下制作它们的信息。

3D散点图用于在三个轴上绘制数据点,以尝试显示三个变量之间的关系。数据表中的每一行都由一个标记表示,其位置取决于其在X、Y和Z轴上设置的列中的值。

甲Scatter3D迹是由go.Scatter3D()函数返回一个图形对象。此函数的必需参数是x、y和z,它们中的每一个都是列表或数组对象。

曲面图是三维数据的图表。在曲面图中,每个点由3个点定义:纬度、经度和高度(X、Y和Z)。表面图不是显示单个数据点,而是显示指定因变量(Y)和两个自变量(X和Z)之间的函数关系。该图是等高线图的配套图。

这是一个Python脚本,用于渲染简单的曲面图,其中y数组是x的转置,z计算为cos(x2+y2)

Plotly通过在绘图区域上使用不同的控件(例如按钮、下拉菜单和滑块等)来提供高度的交互性。这些控件与绘图布局的updatemenu属性相结合。您可以通过指定要调用的方法来添加按钮及其行为。

所述restyle时,应使用的方法,修改所述数据和数据属性图表的。在以下示例中,Updatemenu()方法使用restyle方法将两个按钮添加到布局中。

单击Violin按钮可显示相应的Violin图。

所述更新方法应该修改所述图形的数据和布局部分时使用。以下示例演示了如何在更新布局属性(例如图表标题)的同时更新以及显示哪些跟踪。对应于正弦和余弦波的两条Scatter轨迹被添加到Figure对象。可见属性为True的迹线将显示在图上,其他迹线将被隐藏。

importnumpyasnpimportmath#neededfordefinitionofpixpoints=np.arange(0,math.pi*2,0.05)y1=np.sin(xpoints)y2=np.cos(xpoints)fig=go.Figure()#AddTracesfig.add_trace(go.Scatter(x=xpoints,y=y1,name='Sine'))fig.add_trace(go.Scatter(x=xpoints,y=y2,name='cos'))fig.layout.update(updatemenus=[go.layout.Updatemenu(type="buttons",direction="right",active=0,x=0.1,y=1.2,buttons=list([dict(label="first",method="update",args=[{"visible":[True,False]},{"title":"Sine"}]),dict(label="second",method="update",args=[{"visible":[False,True]},{"title":Cos"}])]))])iplot(fig)最初,将显示正弦曲线。如果单击第二个按钮,则会出现cos跟踪。

请注意,图表标题也会相应更新。

为了使用animate方法,我们需要向Figure对象添加一个或多个Frames。与数据和布局一起,框架可以添加为图形对象中的键。帧关键点指向一个图形列表,每个图形将在触发动画时循环显示。

您可以通过向布局添加更新菜单数组来添加、播放和暂停按钮以在图表中引入动画。

"updatemenus":[{"type":"buttons","buttons":[{"label":"YourLabel","method":"animate","args":[frames]}]}]在以下示例中,首先绘制散点曲线轨迹。然后添加框架,这是一个包含50个框架对象的列表,每个对象代表曲线上的一个红色标记。请注意,按钮的args属性设置为None,因此所有帧都是动画的。

单击播放按钮后,红色标记将开始沿曲线移动。

Plotly有一个方便的Slider,可用于通过滑动位于渲染图底部的控件上的旋钮来更改图的数据/样式视图。

我们现在在散点图上部署一个简单的滑块控件,当旋钮沿着控件滑动时,它将改变正弦波的频率。滑块配置为具有50个步骤。首先添加50条具有递增频率的正弦波曲线,除第10条以外的所有迹线设置为可见。

然后,我们使用restyle方法配置每个步骤。对于每个步骤,所有其他步骤对象的可见性设置为false。最后,通过初始化滑块属性更新Figure对象的布局。

#Addtraces,oneforeachsliderstepforstepinnp.arange(0,5,0.1):fig.add_trace(go.Scatter(visible=False,line=dict(color="blue",width=2),name="e="+str(step),x=np.arange(0,10,0.01),y=np.sin(step*np.arange(0,10,0.01))))fig.data[10].visible=True#Createandaddslidersteps=[]foriinrange(len(fig.data)):step=dict(method="restyle",args=["visible",[False]*len(fig.data)],)step["args"][1][i]=True#Togglei'thtraceto"visible"steps.append(step)sliders=[dict(active=10,steps=steps)]fig.layout.update(sliders=sliders)iplot(fig)首先,10th正弦波轨迹将可见。尝试在底部的水平控件上滑动旋钮。您将看到如下所示的频率变化。

Plotly3.0.0引入了一个新的Jupyter小部件类:plotly.graph_objs.FigureWidget。它与我们现有的Figure具有相同的调用签名,并且是专门为JupyterNotebook和JupyterLab环境制作的。

所述go.FigureWiget()函数返回与默认x和一个空FigureWidget对象轴。

FigureWidget最重要的特性是生成的Plotly图形,它可以随着我们继续向其添加数据和其他布局属性而动态更新。

这个小部件能够作为悬停、点击、选择点和放大区域的事件监听器。

在以下示例中,FigureWidget被编程为响应绘图区域上的单击事件。小部件本身包含一个带有标记的简单散点图。鼠标点击位置用不同的颜色和大小标记。

x=np.random.rand(100)y=np.random.rand(100)f=go.FigureWidget([go.Scatter(x=x,y=y,mode='markers')])scatter=f.data[0]colors=['#a3a7e4']*100scatter.marker.color=colorsscatter.marker.size=[10]*100f.layout.hovermode='closest'defupdate_point(trace,points,selector):c=list(scatter.marker.color)s=list(scatter.marker.size)foriinpoints.point_inds:c[i]='red's[i]=20scatter.marker.color=cscatter.marker.size=sscatter.on_click(update_point)f在Jupyternotebook中运行上面的代码。显示散点图。单击该区域中标记为红色的位置。

Plotly的FigureWidget对象也可以使用Ipython自己的小部件。在这里,我们使用ipwidgets模块中定义的交互控制。我们首先构建一个FigureWidget并添加一个空的散点图。

fromipywidgetsimportinteractfig=go.FigureWidget()scatt=fig.add_scatter()fig我们现在定义一个更新函数,它输入频率和相位并设置上面定义的散射轨迹的x和y属性。来自ipywidgets模块的@interact装饰器用于创建一组简单的小部件来控制绘图的参数。更新函数用来自ipywidgets包的@interact装饰器装饰。装饰器参数用于指定我们要扫描的参数范围。

xs=np.linspace(0,6,100)@interact(a=(1.0,4.0,0.01),b=(0,10.0,0.01),color=['red','green','blue'])defupdate(a=3.6,b=4.3,color='blue'):withfig.batch_update():scatt.x=xsscatt.y=np.sin(a*xs-b)scatt.line.color=color空FigureWidget现在以蓝色填充,正弦曲线a和b分别为3.6和4.3。在当前笔记本单元格下方,您将获得一组滑块,用于选择a和b的值。还有一个下拉菜单可以选择跟踪颜色。这些参数在@interact装饰器中定义。

Pandas是Python中非常流行的用于数据分析的库。它也有自己的绘图功能支持。但是,Pandas图不提供可视化中的交互性。值得庆幸的是,可以使用Pandas数据框对象构建plotly的交互式和动态图。

我们首先从简单的列表对象构建一个Dataframe。

data=[['Ravi',21,67],['Kiran',24,61],['Anita',18,46],['Smita',20,78],['Sunil',17,90]]df=pd.DataFrame(data,columns=['name','age','marks'],dtype=float)数据框列用作图形对象轨迹的x和y属性的数据值。在这里,我们将使用名称和标记列生成条形跟踪。

Plotly建立在d3.js之上,特别是一个图表库,可以使用另一个名为Cufflinks的库直接与Pandas数据帧一起使用。

pipinstallcufflinksorcondainstall-cconda-forgecufflinks-py首先,将袖扣与其他库(如Pandas和numpy)一起导入,这些库可以将其配置为离线使用。

importcufflinksascfcf.go_offline()现在,您可以直接使用Pandas数据框来显示各种绘图,而无需像我们之前所做的那样使用来自graph_objs模块的跟踪和图形对象。

它可以由不同类型数据库中的数据填充,而不是使用Python列表来构建数据框。例如,可以将CSV文件、SQLite数据库表或mysql数据库表中的数据提取到Pandas数据帧中,最终使用Figure对象或Cufflinks接口绘制图形。

要从CSV文件中获取数据,我们可以使用Pandas库中的read_csv()函数。

importpymysqlimportpandasaspdconn=pymysql.connect(host="localhost",user="root",passwd="xxxx",db="mydb")cursor=conn.cursor()cursor.execute('selectname,age,marks')rows=cursor.fetchall()df=pd.DataFrame([[ijforijini]foriinrows])df.rename(columns={0:'Name',1:'age',2:'marks'},inplace=True)使用Matplotlib和ChartStudio进行绘图本章涉及名为Matplotlib的数据可视化库和名为ChartStudio的在线绘图制作器。

Matplotlib是一个流行的Python数据可视化库,能够生成生产就绪但静态的绘图。您可以借助plotly.tools模块中的mpl_to_plotly()函数将静态matplotlib图形转换为交互式绘图。

以下脚本使用Matplotlib的PyPlotAPI生成正弦波线图。

ChartStudio是Plotly提供的在线绘图制作工具。它提供了一个图形用户界面,用于将数据导入和分析到网格中并使用统计工具。图形可以嵌入或下载。它主要用于更快、更有效地创建图形。

菜单中提供了各种绘图结构元素,例如注释、样式等,以及保存、导出和共享绘图的工具。

让我们在工作表中添加数据并从跟踪类型中添加选择条形图跟踪。

THE END
1.androidEasyImage多选相册选择mob64ca1411e411的技术博客()这两个值是控件属性的向内偏移的距离值,所以的一起计算 //区别于layout_marginLeft,两个控件的左间距值设置 int desireByImg = getPaddingLeft() + getPaddingRight() + mSrc.getWidth(); // wrap_content if (specMode == MeasureSpec.AT_MOST) { //所以最小的值,宽度的话是左右内偏移距离之和 https://blog.51cto.com/u_16213690/12820997
2.ps变换工拥有哪些下拉子菜单7条回答:【推荐答案】在Photoshop中,变换工具有很多下拉菜单。这些菜单包括移动、缩放、旋转、镜像等选项。在移动工具下拉菜单中,可以使用https://wap.zol.com.cn/ask/x_25081292.html
3.odoo17官方版本发布白皮书,全部功能及重要更新ReleaseNote在电子表格中插入图像。 改进颜色选择器 在颜色选择器中添加颜色强度。 改进的日期解析 现在可以正确识别格式为 MM/YYYY 的日期。 插入函数 从“插入”菜单插入并可视化所有功能。 插入换行符 按Alt+Enter 在单元格内插入换行符。 插入链接快捷方式 使用Ctrl+K 键盘快捷键在单元格中插入链接。 预测评估的新功https://www.odooai.cn/en/blog/odoo-install-6/odoo17-official-release-all-functions-and-important-updates-315
4.Python图形用户界面GUI之TkinterTkinter全网最全最详细教程Toplevel:创建一个子窗口,类似于 Tk 同样是个顶级窗口,但作为主窗口的子窗口存在。 2.基本控件 (Basic Widgets) Label:标签,用于显示文本或图像。 Button:按钮,用户可以点击以触发事件。 Canvas:画布,允许绘制图形、显示图像、创建图形界面或其他小部件。 http://www.icodebang.cn/m/article/413755
5.WindowsVista官方攻略:IN《Windows Vista官方攻略:INSIDE OUT》内容翔实,脉络清晰,著述清楚,通过数百个锦囊妙计、错误排查提示和解决方案,全方位阐述了Windows Vista的使用技巧,体现了Windows Vista的强大功能。全书共5部分31章,分别介绍了安装与启动、安全与联网、数字媒体、系统维护与管理https://baike.sogou.com/v82415459.htm?fromTitle=Windows+Vista%E5%AE%98%E6%96%B9%E6%94%BB%E7%95%A5:IN
6.Java基础知识笔记112Swing用户界面组件JMenu是JMenuItem的子类,因此菜单本身也是一个菜单项,当把一个菜单看作菜单项添加到某个菜单中,称这样的菜单为子菜单 5.菜单上的图标 我们先用Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如: Icon icon=newImageIcon("a.gif"); 然后菜单项调用setlcon(Icon icon)方法将图标设置为icon. https://blog.csdn.net/aph85734/article/details/101107331
7.第二十八课:photoshop图像菜单应用知识学习(菜单栏)第二十八第二十八课:photoshop图像菜单应用知识学习(菜单栏)“图像”菜单中的命令主要是对图片进行调整的,包括图片的大小、颜色、明暗关系和色彩饱和度等,“图像”菜单也是我们在实际操作中最为常用的一个菜单,大家只有对里面的主要命令充分掌握,才能更好的使用photoshop。 https://www.west.cn/info/html/wangyezhizuo/photoshop/20180623/4224374.html
8.《图层的应用》教案9篇(全文)颜色图标:单击在拾色器中选择投影的颜色。不透明度:设置投影的不透明度。角度:设置投影的角度。使用全局光:通过统一调整在其他效果或其他图层效果上的光照角度,使图像效果更加逼真。? 距离:设置投影与图像的距离。 ? 扩展:扩展除投影的模糊区域以外的其余部分。? 大小:将投影模糊并加大。 https://www.99xueshu.com/w/file06m4ibmq.html
9.题目:图像调节实例操作:1了解图像调节的含义及图像菜单栏所有题目:图像调节 实例操作: 1、了解图像调节的含义及图像菜单栏所有命令的基本操作; 2、利用调整子菜单栏下对应命令将人物照片美白或更换任意照片中的色调; 3、利用“替换颜色”“色彩平衡”“色相/饱和度”“曲线”等命令会制作不同季节或下雪等艺术效果; 4、利用相应命令制作老照片效果或将老照片处理成新照https://www.shuashuati.com/ti/994bf2cdcdf54886ad1ab34f4825c063.html?fm=bd3f187f3216e440c66c0bb9936a6b529d
10.Web零件库(精选八篇)在该定义行中,id_bzhtuku为标识符;“[零件图库]”表示在菜单栏中显示“零件图库”下拉菜单的标题“零件图库”,且B键为快捷键,即通过组合键Alt+B可打开“零件图库”下拉菜单。 (3)id_lshhlzh[->螺栓和螺柱] 在该定义行中,id_lshhlzh为标识符。“[->螺栓和螺柱]”中,“->”表示开始定义子菜单,即将从“https://www.360wenmi.com/f/cnkeyp0elfb1.html
11.IBMAIX常见问题处理:《转载》mdl9630FAQ: 如何关闭IBM小型机面板告警灯 1,进diag,选task,找到identify and attention indicators 2,用命令/usr/lpp/diagnostics/bin/usysfault -s normalhttp://blog.chinaunix.net/uid-23280800-id-4278673.html
12.zfcg.fuzhou.gov.cn/upload/document/20210531/a2f60d92e4d649a9(2)最高限价由采购人根据价格测算情况,在预算金额的额度内合理设定。最高限价不得超出预算金额。 (3)除招标文件另有规定外,投标文件不能出现任何选择性的投标报价,即每一个合同包和品目号的采购标的都只能有一个投标报价。任何选择性的投标报价将导致投标无效。 10.7分包 (1)是否允许中标人将本项目的非主体、非http://zfcg.fuzhou.gov.cn/upload/document/20210531/a2f60d92e4d649a9bd2b904312f583f0.html
13.《界面设计》复习资料6.以下图像编辑,使用Sketch不能实现的是() A.调整大小B.转换格式C.添加蒙版D.套索选取【注释】:第一章1.2.2 第5页 Sketch虽然不是一款位图编辑器,但是它同样支持对图像进行简单的处理,如调整大小、转换格式、添加蒙版等 7.下列关于Sketch和Photoshop的特性对比不正确的是() A.Sketch支持位图处理Photoshop不支持Bhttps://www.wjx.cn/xz/260641939.aspx
14.计算机等级考试二级VB基础教程总结数据访问特性允许对包括 Microsoft SQL Server 和其它企业数据库在内的大部分数据库格式 建立数据库和前端应用程序,以及可调整的服务器端部件。 有了ActiveX(TM) 技术就可使用其它应用程序提供的功能,例如 Microsoft Word 字处理器, Microsoft Excel 电子数据表及其它 Windows 应用程序。 https://www.360doc.cn/document/15678203_1074578861.html
15.metashapePro破解版AgisoftmetashapeProfession从Workflow菜单中选择AddFolder命令。 在“添加文件夹”对话框中,浏览到包含带有图像的子文件夹的父文件夹。然后单击选择文件夹按钮。 在“添加照片”对话框中,选择数据布局“从文件夹创建多光谱相机作为乐队” 使用多光谱相机创建的块将显示在“工作区”窗格中。多光谱相机的标签将取自所使用的第一个图像http://www.sd173.com/soft/7679.html
16.HPColorLaserJetM375/M475彩色多功能打印机系列要打开此菜单,请轻触设置按钮。其中包含下列子菜单: HP Web 服务 报告 快速表格 传真设置 系统设置 服务 网络设置 HP Web 服务菜单 菜单项 说明 启用Web 服务 启用HP Web 服务,以便能够使用 HP ePrint 和程序菜单。 HP ePrint 是一个工具,可通过使用任何具备电子邮件功能的设备将文档发送到产品的电子邮件地址来http://h22207.www2.hp.com/cn-zh/document/c03265748
17.计算机科学技术:插画师考试题库(题库版)考试题库A、导入为电影剪辑,并保留原有层表示将PNG文件导入为电影剪辑,它所包含的所有帧和层都将出现在电影剪辑元件内 B、导入到当前场景的新层表示将PNG文档导入到当前Flash文档单个的新层中,该层将位于所有层的下面 C、如果要将Fireworks的PNG文件导入为单个的图像,则可以选中作为单个扁平化的位图导入复选框 D、如果选中http://www.91exam.org/exam/87-1134/1134045.html