使用pandas和matplotlib 进行绘图

  • Post category:Python

使用pandas和matplotlib进行数据可视化的过程一般分为以下几个步骤:

  1. 导入数据:使用pandas读取需要绘图的数据文件,如CSV、Excel、SQL等数据源。

  2. 数据清洗和预处理:包括缺失值填充、数据类型转换、数据聚合等操作,以便后续绘图方便。

  3. 绘图设置:设置图形的整体布局、图形标题、轴标签和刻度等参数。

  4. 绘图:基于pandas数据框和matplotlib的绘图函数,完成可视化的开发过程。

  5. 优化:包括图例、注释、视觉元素等细节进一步优化。

下面我们以一个例子来说明这个过程:

(1)导入数据

我们以Titanic乘客数据为例,该数据包含了1912年泰坦尼克号沉船事故中存活与否的数据,保存在CSV文件titanic.csv中。我们可以使用pandas的read_csv函数读取:

import pandas as pd
titanic = pd.read_csv('titanic.csv')

(2)数据清洗和预处理

由于一些原因,数据集中可能存在缺失值,我们可以使用fillna函数对缺失值进行填充。以Cabin列为例,我们可以使用Unknown来填充缺失值:

titanic['Cabin'].fillna('Unknown', inplace=True)

(3)绘图设置

在开始绘图之前,我们可以设置图形的整体布局,包括图形标题、轴标签和刻度等参数。以下代码用于设置图形的标题和坐标轴标签:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

title = '泰坦尼克号幸存乘客人数分析'
xlabel = '是否幸存'
ylabel = '人数'

(4)绘图

现在我们可以使用pandas的plot函数开始绘图。以下代码示例绘制了是否幸存的条形图:

survived_count = titanic['Survived'].value_counts()
survived_count.plot(kind='bar')
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.xticks([0, 1], ['否', '是'], rotation=0)
plt.show()

(5)优化

最后,我们继续优化图形细节,比如添加注释和图例。以下代码示例将图例添加到右上角:

survived_count = titanic['Survived'].value_counts()
ax = survived_count.plot(kind='bar', rot=0)
ax.set_title(title)
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
ax.set_xticklabels(['否', '是'])
for i in ax.containers:
    ax.bar_label(i, label_type='edge')
handles, labels = ax.get_legend_handles_labels()
ax.legend(reversed(handles), reversed(labels), loc='upper right')
plt.show()

上述代码将图例放在了右上角,并使用了bar_label函数添加注释。

以上就是使用pandas和matplotlib进行绘图的完整攻略。需要注意的是,随着数据集的不同,我们可能需要使用更为复杂的绘图类型和优化方法。了解pandas和matplotlib的方法,可以让数据处理和数据可视化的过程更加高效和方便。