数据可视化的东西和程序库已极大丰厚,当你习气个中一种或数种时,你会干得很精彩,然则假如你因而而自鸣得意,就会错失从青铜到王者的新东西和程序库。假如你依然对峙运用Matplotlib(这太奇异了),Seaborn(这也很奇异),Pandas(基础,简朴的可视化)和Bokeh,那末你真的须要停下来相识一下新事物了。比方,python中有很多使人惊叹的可视化库,而且通用化水平已很高,比方下面这五个:
Plotly
Cufflinks
Folium
Altair + Vega
D3.js(个人认为最好的挑选,由于我也用JS写代码)
假如您相识并运用上面提到的库,那末您就处于进化的正确轨道上。它们可以协助生成一些使人拍案的可视化结果,语法也不难。一般来说,我更喜好Plotly+Cufflinks和 D3.js. 以下细致道来:
Plotly
Plotly是一个开源,交互式和基于浏览器的Python图形库。可以建立能在仪表板或网站中运用的交互式图表(您可以将它们保存为html文件或静态图象)。Plotly基于plotly.js,而plotly.js又基于D3.js,因而它是一个高等图表库,与Bokeh一样,Plotly的 刚强是制造交互式图 ,有凌驾30种图表范例, 供应了一些在大多数库中没有的图表 ,如等高线图、树状图、科学图表、统计图表、3D图表、金融图表等。 plotly最棒的一点是可以在Jupyter笔记本或自力的HTML页面中运用 。您也可以在他们的网站上在线运用它,但我更喜好离线运用它,您也可以将可视化保存为图象,异常易于运用也异常有用。
– 在Jupyter Notebook中运用Plotly的要领(离线)
起首,装置plotly库。
pip install plotly
然后翻开jupyter笔记本并键入:
from plotly import __version__ from plotly.offline import download_plotlyjs,init_notebook_mode,plot,iplot init_notebook_mode(connected = True)
语法超简朴!在Pandas中 ,你运用dataframe.plot() ,在这里,您运用 dataframe.iplot()。 这个“ i ” 改变了可视化的全部定义。
只需一行代码,我生成了下面这个散点图。您可以依据须要自定义它。请记着指定形式标记,不然您将取得一些线条。
请注意,跟着数据的增添,plotly会最先卡滞。所以,只有当数据点的小于500K时,我才会运用plotly。
相干引荐:《Python视频教程》
Cufflinks
Cufflinks将Plotly直接绑定到pandas数据帧。这类组合异常惊人,连系了Pandas的灵活性,比Plotly更有用,语法以至比plotly简朴。运用plotly的Python库,您可以运用DataFrame的系列和索引来形貌图形,然则运用Cufflinks可以直接绘制它。正以下面这个例子:
df = cf.datagen.lines()py.iplot([{ 'x':df.index, 'y':df [col], 'name':col } <strong>for</strong> col <strong>in</strong> df.columns])
with plotly
df.iplot(kind= 'scatter')
with cufflinks
Cufflinks使得图表绘制越发轻易。您以至还 可以运用Cufflinks生成使人惊叹的3D图表 。我只用几行代码生成了下面这个3D图表。
用Cufflinks生成的3D图表
你可以随时在Jupyter Notebook中试用它。
– 疾速秘诀:
在设置中设置:
c.NotebookApp.iopub_data_rate_limit = 1.0e10
按以下体式格局导入:
import plotly.graph_objs as go import plotly.plotly as py import cufflinks as cf from plotly.offline import iplot,init_notebook_mode cf.go_offline() #Set global theme cf.set_config_file(world_readable = True,theme ='pearl',offline = True ) init_notebook_mode()
接下来,我将议论另一个神库——Viz库。
Folium
Folium建立在Python生态系统的数据上风和Leaflet.js库的映照上风之上。您可以在python中操纵数据,然后经由过程folium在Leaflet舆图中将其可视化。Folium是一个用于绘制空间数据的“神库”。你还可以运用folium生成热图和等值地区图。让我们相识一下folium:
舆图定义为 folium.Map 对象,可在folium顶部增加其他folium对象。
您可以为Folium衬着的舆图运用差别的舆图图层,比方MapBox,OpenStreetMap和其他几个图层,你可以检察 此github库文件夹 或 此文档页面 。
你还可以挑选差别的舆图投影。有很多投影可供挑选。
让我们用美国赋闲的Geojson生成一个Choropleth舆图。以下是片断:
map = folium.Map([43, -100], zoom_start=4) choropleth = folium.Choropleth( geo_data=us_states, data=state_data, columns=['State', 'Unemployment'], key_on='feature.id', fill_color='YlGn', name='Unenployment', show=<strong>False</strong>,).add_to(m) <em> # 底层的GeoJson和StepColormap对象是可接见的 </em> print(type(choropleth.geojson)) print(type(choropleth.color_scale)) folium.LayerControl(collapsed=<strong>False</strong>).add_to(m) map.save(os.path.join('results', 'GeoChoro.html')) map
这只是一个基础的舆图,你可以增加标记,弹出窗口等等。可以是下面的leaflet和folium生成的舆图。
Altair + Vega
Altair是一个声明性统计可视化库,基于Vega和Vega-Lite。
声明意味着只须要供应数据列与编码通道之间的链接,比方x轴,y轴,色彩等,其他的画图细节它会自动处置惩罚。声明使Altair变得简朴,友爱和一致。运用Altair可以轻松设想出有用且雅观的可视化代码。
Altair使您可以运用壮大而简约的可视化语法疾速开辟种种统计可视化图表。假如您运用的是Jupyter Notebook,则须要按以下体式格局装置它。它还包含一些示例vega数据集。
pip install -U altair vega_datasets notebook vega
Altair重要依靠Vega,为了使图表在屏幕上可见,你须要装置Vega,而且还须要为每一个新会话运转此敕令:
alt.renderers.enable(‘notebook’)
Altair中的数据是缭绕Pandas Dataframe构建的。统计可视化最显著的特性是以整齐的Dataframes最先。您还可以将画图另存为图象或在vega编辑器中翻开它以取得更多选项。Altair能够不是最好的,但相对值得一试。
下面这个例子,我运用了汽车数据集;
import altair as altfrom vega_datasets import datasource = data.cars() brush = alt.selection(type='interval') points = alt.Chart().mark_point().encode( x='Horsepower:Q', y='Miles_per_Gallon:Q', color=alt.condition(brush, 'Origin:N', alt.value('lightgray'))).add_selection( brush) bars = alt.Chart().mark_bar().encode( y='Origin:N', color='Origin:N', x='count(Origin):Q').transform_filter( brush) alt.vconcat(points, bars, data=source)
Altair和Vega生成的疏散图和直方图
D3.js(数据驱动文档DDD)
D3.js是一个JavaScript库,依据数据操纵文档。您可以运用HTML,SVG和CSS将数据变成活龙活现的图表。D3并不请求您将本身绑定到任何专有框架,由于当代浏览器具有D3所需的统统,它还用于组合壮大的可视化组件和数据驱动的DOM操纵要领。
D3.js是现在市场上最好的数据可视化库。 您可以将它与python一同运用,也可以与R一同运用。最初,它可以与JavaScript一同运用,由于JS具有普遍的功用而且须要大批的进修和履历,然则假如你是JS专业人员则不须要犹疑。虽然 Python 和 R 使D3.js变得更简朴,但只是一点点!总之D3.js是相对不会错的上佳之选。
D3py有3个重要依靠项:
NumPy
Pandas
NetworkX
我发起你运用JavaScript或R,而不是python,由于版本已过期,末了一次更新是在2016年。而且只是D3.js的一个瘦的python包装器。
R供应D3可视化接口。运用 r2d3 ,您可以将数据从R绑定到D3可视化。运用 r2d3 建立的D3可视化就像RStudio,R Markdown文档和Shiny应用程序中的R图一样事情。您可以按以下体式格局从CRAN 装置 r2d3 软件包:
install.packages(“r2d3”)
你可以做一些惊人的可视化,比方下面这几个:
Sequences Sunburst — Kerry Rodden’s Block (Source)
以上就是从青铜到王者,进阶数据可视化2.0的五个Python库!的细致内容,更多请关注ki4网别的相干文章!