Python的可视化库有哪些

发布时间:2021-11-03 18:02:09 作者:iii
来源:亿速云 阅读:155

这篇文章主要讲解了“Python的可视化库有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的可视化库有哪些”吧!

Matplotlib, Seaborn, and Pandas:

我将出于几个原因将它们组合在一起,首先是Seaborn和Pandas绘图是建立在Matplotlib之上的——当你在panda中使用Seaborn或df.plot()时,你实际上是在利用Matplotlib编写的代码。因此,每一种方法产生的美感都是相似的,定制图片的方法将使用非常相似的语法。

当我想到这些可视化工具时,我想到:探索性数据分析。这些包对于第一次查看您的数据是非常棒的,但是当涉及到表示时就不太好了。Matplotlib还有一组样式选择,它们模仿其他流行的美学,比如ggplot2和xkcd。下面是一些使用Matplotlib和它的近亲制作的图的例子:

在处理篮球薪资数据时,我希望找到拥有最高薪资中位数数据的球队。为了说明这一点,我用颜色编码了一个柱状图,下面是每支球队的工资,以显示球员应该去哪支球队,这样才能加入薪酬高的球队。

import seaborn as snsimport matplotlib.pyplot as pltcolor_order =  ['xkcd:cerulean', 'xkcd:ocean',     'xkcd:black','xkcd:royal purple',       'xkcd:royal purple', 'xkcd:navy blue',      'xkcd:powder blue',  'xkcd:light maroon',   'xkcd:lightish  blue','xkcd:navy']sns.barplot(x=top10.Team,  y=top10.Salary,  palette=color_order).set_title('   Teams with Highest Median  Salary')plt.ticklabel_format(style='sci', axis='y',        scilimits=(0,0))

Python的可视化库有哪些

接下来是回归实验残差的Q-Q图。这种可视化的主要目的是显示我们可以用很少的代码显示比较完整的图片。

import matplotlib.pyplot as pltimport scipy.stats as stats#model2 is  a regression modellog_resid = model2.predict(X_test)- y_teststats.probplot(log_resid, dist="norm",  plot=plt)plt.title("Normal Q-Q plot")plt.show()

Python的可视化库有哪些

最终,Matplotlib和它的相关组件非常高效,但就演示而言,它们通常不是最终产品。

ggplot(2)

ggplot是最流行的R可视化软件包。这不是一个Python包评审吗?你可能会问。开发人员用Python实现了ggplot2,复制了从美学到语法的所有内容。从我所见过的所有材料来看,它的外观和感觉都很像ggplot2,但是还有一个额外的好处,它依赖于pandas  Python包,该包最近弃用了一些方法,导致ggplot的Python版本变得无关。如果您想在R中使用真正的ggplot(它具有所有相同的外观、感觉和语法,没有依赖项),我将在这里讨论它的一些额外功能!也就是说,如果您确实必须在Python中使用ggplot,那么您必须安装pandas版本0.19.2,但是我要提醒您不要降低您的pandas的级别,这样您就可以使用一个较差的绘图包。

使ggplot2(我猜还有Python的ggplot)改变游戏规则的是,它们使用“图形语法”来构造图形。基本的前提是,您可以实例化您的图片,然后分别添加不同的功能,即标题、轴、数据点和趋势线都是单独添加的,具有各自的美学属性。下面是一些ggplot代码的简单示例。首先,我们用ggplot实例化图形,设置美学和数据,然后添加点、主题和轴/标题标签。

#All Salariesggplot(data=df, aes(x=season_start, y=salary,  colour=team)) +  geom_point() +  theme(legend.position="none") +   labs(title = 'Salary Over Time', x='Year', y='Salary ($)')

Python的可视化库有哪些

Bokeh

Bokeh很漂亮。概念上类似于ggplot,它使用图形语法来构造图形,Bokeh有一个易于使用的界面,可以制作非常专业的图形和仪表板。

import pandas as pdfrom bokeh.plotting import figurefrom bokeh.io  import show# is_masc is a one-hot encoded dataframe of responses to  the question:# "Do you identify as masculine?"#Dataframe Prepcounts =  is_masc.sum()resps = is_masc.columns#Bokehp2 = figure(title='Do You  View Yourself As Masculine?',                   x_axis_label='Response',          y_axis_label='Count',                x_range=list(resps))p2.vbar(x=resps, top=counts,  width=0.6, fill_color='red',  line_color='black')show(p2)#Pandascounts.plot(kind='bar')

Python的可视化库有哪些

上面的柱状图显示了538位在最近的一次调查中对“你认为自己是男性吗”这个问题的回答。第9-14行中的Bokeh代码创建了一个优雅的、专业的响应计数直方图,具有合理的字体大小、y标记和格式。我编写的大部分代码用于标记坐标轴和标题,以及给条形图添加颜色和边框。当制作漂亮的,像样的图形时,我非常倾向于Bokeh  -很多美学工作已经为我们做了!

Python的可视化库有哪些

上面的蓝色图是上面要点的第17行上的一行代码。这两个直方图具有相同的值,但用途不同。在一个探索性的设置中,与pandas一起写一行来查看数据要方便得多,但是Bokeh的美学是相当出色的。Bokeh提供的所有便利都可以在Matplotlib中进行定制,包括x轴标签的角度、背景线、y轴扩展、字体大小/斜体/粗体等。下图显示了一些随机的趋势,使用了更多的自定义图例和不同的线条类型和颜色:

Python的可视化库有哪些

最后提一下,Bokeh也是一个制作交互式仪表板的好工具。

Plotly

Plotly是非常强大的,但设置和创建的数字需要很多时间,都不是直观的。在花了大半个上午埋头苦干之后,我去吃午饭,几乎什么也没看到。我创建了一个没有轴标签的条形图和一个“散点图”,其中的线条我无法删除。一些值得注意的缺点有:

如果我只是用一些代码来表达我的不满,而不展示一些代码和我能够完成的工作,以及那些更有能力使用这个包的人所完成的工作,这对我来说是不公平的:

#plot 1 - barplot# **note** - the layout lines do nothing and trip no errorsdata = [go.Bar(x=team_ave_df.team,   y=team_ave_df.turnovers_per_mp)]layout = go.Layout(    title=go.layout.Title(                         text='Turnovers per Minute by Team', xref='paper',  x=0),                       xaxis=go.layout.XAxis(title = go.layout.xaxis.Title(                              text='Team',    font=dict( family='Courier New, monospace',                                      size=18, color='#7f7f7f'  )  )  ),                      yaxis=go.layout.YAxis(  title = go.layout.yaxis.Title(                              text='Average Turnovers/Minute',   font=dict(                                      family='Courier New, monospace',   size=18,                                       color='#7f7f7f'  )  )  ),     autosize=True,    hovermode='closest')py.iplot(figure_or_data=data, layout=layout,  filename='jupyter-plot', sharing='public',  fileopt='overwrite')#plot 2 - attempt at a scatterplotdata = [go.Scatter(x=player_year.minutes_played,  y=player_year.salary,   marker=go.scatter.Marker(color='red',  size=3))]layout = go.Layout(title="test",  xaxis=dict(title='why'),  yaxis=dict(title='plotly'))py.iplot(figure_or_data=data,  layout=layout, filename='jupyter-plot2', sharing='public')

Python的可视化库有哪些

Python的可视化库有哪些

总的来说,开箱即用的外观看起来不错,但是多次尝试修复axis标签,逐字复制文档,都没有产生任何变化。然而,正如我之前承诺过的,这里有一些图片展示了它的潜力,以及为什么花几个小时以上可能是值得的:

Python的可视化库有哪些

Pygal

Pygal是一个不太为人所知的绘图包,它与其他流行的包一样,使用图形框架的语法来构造图像。由于图片对象非常简单,所以它是一个相对简单的包。使用Pygal非常简单:

我在Pygal中遇到的主要问题是如何渲染图形。我必须使用他们的render_to_file选项,然后在web浏览器中打开该文件,看看我构建了什么。它最终是值得的,因为这些数字是互动的,有一个愉快的和容易定制的审美。总的来说,这个包看起来不错,但是有一些文件创建/渲染的怪癖限制了它的吸引力。

Python的可视化库有哪些

Networkx

Networkx是分析和可视化图形的一个很好的解决方案,尽管它是基于matplotlib的。图形和网络不是我的专业领域,但Networkx允许快速、简单地用图形表示连接的网络。下面是我构建的一个简单图的几个不同的表示,以及从斯坦福SNAP下载的一些开始绘制小型Facebook网络的代码。

Python的可视化库有哪些

我用颜色标注每个节点编号(1-10)的代码如下:

options = {'node_color' : range(len(G)),               'node_size' :  300,    'width' : 1,    'with_labels' : False,              'cmap' :  plt.cm.coolwarm}nx.draw(G, **options)

Python的可视化库有哪些

感谢各位的阅读,以上就是“Python的可视化库有哪些”的内容了,经过本文的学习后,相信大家对Python的可视化库有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 基于Python的数据可视化库pyecharts介绍
  2. Python数据可视化的库有什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:WebWork如何实现用户登陆

下一篇:Java中常用的排序算法有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》