您应该了解的顶级 Python 数据可视化库
已发表: 2020-03-20Python 可以用数据做很多事情。 它的众多功能之一是可视化。 它有多个可用于此目的的库。 在本文中,我们将看看它的一些著名库以及您可以通过它们绘制的各种图表。
目录
Python 数据可视化
我们在本文中分享了多个示例,请务必使用数据集进行尝试。 让我们开始吧:
Python 数据可视化库
Python 有许多库可以创建漂亮的图形。 它们都具有增强其性能和功能的各种功能。 它们适用于所有技能水平。 这意味着无论您是初学者还是高级程序员,您都可以在 Python 中执行数据可视化。 以下是一些著名的库:
- 海博恩
- Matplotlib
- 熊猫
还有许多其他用于数据科学的 Python 库,但我们暂时专注于突出的库。 我们现在将讨论这些不同的库,并了解如何使用它们和 Python 绘制图形。 让我们开始吧。
Matplotlib
最流行的用于绘制图形的 Python 库是 Matplotlib。 它不需要太多经验,对于初学者来说,它是完美的。 你可以通过这个库开始学习数据可视化,掌握各种图表和可视化。 它给了你很大的自由,但你也必须编写很多代码。
人们使用 Matplotlib 进行简单的可视化,例如条形图和直方图。
阅读:Python 中的数据框
折线图
要创建折线图,您需要使用“绘图”方法。 通过循环列,您可以在图表中创建多个列。 为此目的使用以下代码:
# 获取要绘制的列
列 = iris.columns.drop(['class'])
# 创建 x 个数据
x_data = range(0, iris.shape[0])
# 创建图形和轴
无花果,斧头 = plt.subplots()
# 绘制每一列
对于列中的列:
ax.plot(x_data, iris[column], label=column)
# 设置标题和图例
ax.set_title('虹膜数据集')
斧头传奇()
散点图
您可以使用 'scatter' 方法创建散点图。 您应该通过“plt.subplots”创建一个轴和一个图形,以提供您的绘图标签和标题。
使用以下代码:
# 创建图形和轴
无花果,斧头 = plt.subplots()
# 将 sepal_length 分散到 sepal_width
ax.scatter(iris['sepal_length'], iris['sepal_width'])
# 设置标题和标签
ax.set_title('虹膜数据集')
ax.set_xlabel('sepal_length')
ax.set_ylabel('sepal_width')
您可以根据它们的类为数据点添加颜色。 为此,您需要制作一个从类映射到颜色的字典。 它也会通过使用 for 循环来分散每个点。
# 创建颜色字典
颜色 = {'Iris-setosa':'r', 'Iris-versicolor':'g', 'Iris-virginica':'b'}
# 创建图形和轴
无花果,斧头 = plt.subplots()
# 绘制每个数据点
对于我在范围内(len(iris ['sepal_length'])):
ax.scatter(iris['sepal_length'][i], iris['sepal_width'][i],color=colors[iris['class'][i]])
# 设置标题和标签
ax.set_title('虹膜数据集')
ax.set_xlabel('sepal_length')
ax.set_ylabel('sepal_width')
直方图
您可以使用 'hist' 方法在 Matplotlib 中创建直方图。 如果我们给它分类数据,它可以计算每个类出现的频率。 这是在 Matplotlib 中绘制直方图所需的代码:
# 创建图形和轴
无花果,斧头 = plt.subplots()
# 绘制直方图
ax.hist(wine_reviews['points'])
# 设置标题和标签
ax.set_title('酒评分数')
ax.set_xlabel('点')
ax.set_ylabel('频率')
条形图
Matplotlib 具有绘制不同图形的简单方法。 例如,在这种情况下,要在 Matplotlib 中创建条形图,您需要使用“bar”。 它不能自动计算类别的频率,所以你需要使用'value_counts'函数来解决这个问题。 如果您的数据类型不多,那么条形图将非常适合其可视化。
# 创建图形和轴
无花果,斧头 = plt.subplots()
# 统计每个类的出现次数
数据 = wine_reviews['points'].value_counts()
# 获取 x 和 y 数据
点 = data.index
频率 = data.values
# 创建条形图
ax.bar(点,频率)
# 设置标题和标签
ax.set_title('酒评分数')
ax.set_xlabel('点')
ax.set_ylabel('频率')
熊猫
Pandas 是一个 Python 库,在数据分析和操作方面很受欢迎。 它是一个开源库,因此您可以免费使用它。 它于 2008 年进入市场,从那时起,它已成为最受欢迎的数据结构化库之一。
通过使用 pandas 数据框,您可以轻松地为您的数据创建图表。 它的 API 比 Matplotlib 更先进。 这意味着您可以在 Pandas 中使用比在 Matplotlib 中更少的代码创建图形。

条形图
在 Pandas 中,您需要使用 'plot.bar()' 方法来绘制条形图。 首先,您需要通过“value_count()”计算情节中的出现次数,然后使用“sort_index()”对它们进行排序。 这是创建条形图的示例代码:
random_reviews['points'].value_counts().sort_index().plot.bar()
您可以使用 'plot.barh()' 方法在 Pandas 中创建水平条形图:
random_reviews['points'].value_counts().sort_index().plot.barh()
您也可以通过出现次数绘制数据:
random_reviews.groupby(“国家”).price.mean().sort_values(ascending=False)[:5].plot.bar()
折线图
您需要使用 '<dataframe>.plot.line()' 在 Pandas 中创建折线图,在 Pandas 中,您不需要遍历需要绘制的每一列,因为它可以自动执行。 此功能在 Matplotlib 中不可用。 这是代码:
random.drop(['class'],axis=1).plot.line(title='随机数据集')
散点图
您可以使用“<dataset>.plot.scatter()”在 Pandas 中创建散点图。 您需要向它传递两个参数,即 x 列和 y 列的名称。
这是它的例子:
random.plot.scatter(x='sepal_length', y='sepal_width', title=”随机数据集')
直方图
使用“plot.hist”在 Pandas 中创建直方图。 除此之外,这种方法没有太多内容。 您可以选择创建单个直方图或多个直方图。
要创建一个直方图,请使用以下代码:
random_reviews['points'].plot.hist()
要创建多个直方图,请使用:
random.plot.hist(subplots=True, layout=(2,2), figsize=(10, 10), bins=20)
海博恩
Seaborn 基于 Matplotlib,也是一个非常流行的用于数据可视化的 Python 库。 它为您提供了高级界面来绘制数据。 它有很多特点。 它的高级功能使您可以使用比使用 Matplotlib 所需的更少的代码行数创建出色的图形。
直方图
折线图
您可以使用“sns.line plot”方法在 Seaborn 中创建折线图。 您可以使用“sns.kdeplot”方法对线条的曲线边缘进行圆化。 如果它有很多异常值,它会保持你的情节非常干净。
sns.lineplot(data=random.drop(['class'],axis=1))
散点图
在 Seaborn 中,您可以通过 '.scatterplot' 方法创建散点图。 在这种情况下,您需要添加 x 和 y 列的名称,就像我们对 Pandas 所做的那样。 但是有区别。 我们不能像在 Pandas 中那样在数据上调用函数,因此我们需要将其作为附加参数传递。
sns.scatterplot(x='sepal_length', y='sepal_width', data=iris)
通过使用 'hue' 参数,您也可以突出显示特定点。 这个功能在 Matplotlib 中并不容易。
sns.scatterplot(x='sepal_length',y='sepal_width',hue='class',data=iris)
条形图
您可以使用 'sns.countplot' 方法在 Seaborn 中创建条形图:
sns.countplot(random_reviews['points'])
现在我们已经讨论了 Python 中数据可视化的关键库,我们可以看看其他形式的图表。 Python 及其库使您能够创建各种图形来绘制数据。
Python 中的其他类型的数据可视化
饼形图
饼图在圆的不同部分显示数据。 你一定在学校看过很多饼图。 饼图以百分比表示数据。 饼图所有部分的总和应等于 100%。 这是示例代码:
plt.pie(df['Age'], labels = {“A”, “B”, “C”,
“D”、“E”、“F”、
“G”、“H”、“I”、“J”}、
autopct ='% 1.1f %%', shadow = True)
plt.show()
plt.pie(df['收入'], labels = {“A”, “B”, “C”,
“D”、“E”、“F”、
“G”、“H”、“I”、“J”}、
autopct ='% 1.1f %%', shadow = True)
plt.show()
plt.pie(df['Sales'], labels = {“A”, “B”, “C”,
“D”、“E”、“F”、
“G”、“H”、“I”、“J”}、
autopct ='% 1.1f %%', shadow = True)
plt.show()
箱线图
箱线图基于统计数据的最小值、第一四分位数、中位数、第三四分位数和最大值。 该图看起来像一个盒子(更具体地说,是一个矩形)。 这就是为什么它有“箱线图”这个名字。 下面是创建箱线图的示例代码:
# 对于数据框的每个数字属性
df.plot.box()
# 单个属性箱线图
plt.boxplot(df['收入'])
plt.show()
另请阅读:每个 Python 开发人员都应该知道的 10 大 Python 工具
结论
我们希望您发现这篇文章很有用。 您可以通过 Python 及其各种库绘制多种图形。 如果你之前没有进行过 Python 数据可视化,你应该从 Matplotlib 开始。 掌握它之后,您可以转向更复杂和更高级的数据可视化库,例如 Pandas 和 Seaborn。
如果您想了解 Python、数据科学,请查看 IIIT-B 和 upGrad 的数据科学 PG 文凭,该文凭专为在职专业人士而设,提供 10 多个案例研究和项目、实用的实践研讨会、与行业专家的指导,与行业导师一对一,400 多个小时的学习和顶级公司的工作协助。
哪些是 Python 中最好的数据可视化库?
数据可视化被认为是数据分析中极其重要的部分。 这是因为没有比以可视化格式了解多个数据趋势和信息更好的方法了。 如果您以书面形式展示公司的数据,人们可能会觉得它很无聊。 但是,如果您以视觉格式呈现相同的内容,人们肯定会更加关注它。
为了简化数据可视化过程,Python 中有一些库可以帮助您。 您不能说任何特定的都是最好的,因为这完全取决于要求。 Python 中一些最好的数据可视化库是 matplotlib、plotly、seaborn、GGplot 和 altair。
哪个是 Python 中最好的绘图库之一?
在数据可视化和绘图库方面,有很多可以让您的工作更轻松。 可以看出,在所有可用的库中,Matplotlib 被用户认为是更好的库。
Matplotlib 占用空间更小,运行时间也更长。 除此之外,它还提供了一个面向对象的 API,允许用户在应用程序本身中绘制图形。 Matplotlib 还支持大量的输出类型,而且它是免费和开源的。
哪个是数据科学家的默认数据可视化库?
如果您从事数据科学,那么您很有可能已经使用过 Matplotlib 库。 已经看到,初学者到经验丰富的专业人士更喜欢使用这个库来构建复杂的数据可视化。
其巨大考虑背后的主要原因是它作为 2D 绘图库为用户提供的灵活性。 如果你有 MATLAB 背景,你会注意到 Matplotlib 的 Pyplot 接口对你来说非常熟悉。 因此,您不需要太多时间就可以开始您的第一个可视化。 用户可以从最精细的级别控制 Matplotlib 中的整个可视化。