Datawhale动手学数据分析Task04

第二章:数据可视化

1、matplot初见

1.1 最基本的可视化图案有哪些?分别适用于那些场景?

最基本的可视化图有折线图,柱状图,饼图,散点图,直方图等,
折线图适用于观察某个值的走势,
柱状图适用于观察不同条件的对比,
饼图适用于分析组成成分或者比例;
散点图用于描述数据的分布情况。

1.2 Figure&Subplot

matplotlib的图像都位于Figure对象中,可以用plt.figure创建一个新的Figure

fig = plt.figure()

不能通过空Figure绘图,应该使用add_subplot创建一个或者多个subplot才行:

ax = fig.add_subplot(2, 2, 1)
plt.plot(np.random.randn(50).cumsum(), 'k--')

1.3 调整subplot周围的间距

默认情况下,matplotlib会在subplot外围留下一定的边距,并在subplot之间留下一定的间距。matplotlib可以通过subplots_adjust()方法来完成间距的修改。

subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

subplots_adjust()各参数中,wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。

1.4 颜色、标记和线型

matplotlib的plot函数接受一组x和y坐标,还可以接受一个表示颜色和线型的字符串缩写。

ax.plot(x, y, linestype='--', colot='g', marker='o')

要改变x轴刻度,最简单的方法是使用set_xticks和set_xticklabels,前者告诉matplotlib要将刻度放在数据范围内的那些位置,默认情况下,这些位置就是刻度标签,但可以通过set_xticklabels将任何其他值用作标签。

ticks = ax.set_xticks([0, 250, 500, 700, 1000])
labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'], rotation=30, fontsize='small')
#rotation参数将x刻度标签倾斜30°
ax.set_title('matplotlib plot')
ax.set_xlabel('matplotlib plot')

1.5 添加图例

图例(legend)是另一种用于标识图表元素的重要工具。添加图例的方式简单的是在添加subplot的时候传入label参数:

from numpy.random import randn
fig = plt.figure(); ax = fig.add_subplot(1, 1, 1)

ax.plot(randn(1000).cumsum(), 'k', label='one')

传入label参数之后,可以调用ax.legend()或者plt.legend()来自动创建图例:

ax.legend(loc='best')

其中loc参数标识图例所在的位置,主要取值有upper right、upper left、lower right、lower left、best、center等,其中best参数会选择一个不碍事的位置。

1.6 注释及在subplot上绘图

需要绘制一些子集的注解或者文字时,可以使用text、arrow、annotate函数进行添加

2、使用pandas和seaborn绘图

在pandas中,我们有多列数据还有行和标签,pandas自身就有内置的方法,用于简化从DataFrame和Series绘制图像,而Seaborn简化了许多常见的可视类型的创建。

2.1 线型图

Series和DataFrame都有一个用于生成各类图标的plot方法,默认情况下,它们生成的是线型图。plot参数完整列表如下:

表9-3 Series.plot方法的参数pandas大部分绘图方法都有一个可选的ax参数,这是一个matplotlib的subplot对象。

2.2 柱状图

plot.bar()和plot.barh()分别绘制水平和垂直的柱状图。这时,Series和DataFrame的索引将会被用作X(bar)或者Y(barh)刻度

2.3 直方图和密度图

直方图(histogram)是一种可以对值频率进行离散化显式的柱状图。数据点被拆散到离散的、间隔均匀的面元中,绘制的是各面元中数据点的数量。

tips['tip_pct'].plot.hist(bins=50)

密度图,它是通过计算“可能会产生观测数据的连续概率分布的估计”而产生的。一般的过程是将该分布近似为一组核(即诸如正态分布之类的较为简单的分布)。因此,密度图也被称作KDE(Kernel Density Estimate,核密度估计)图

tips['tip_pct'].plot.density()

使用seaborn的distplot方法绘制直方图和密度图更加简单,还可以同时画出直方图和连续密度估计图》

import seaborn as sns

sns.displot(data, bins=100, color='k')

2.4 散布图或点图

点图或散布图是观察两个一维数据序列之间的关系的有效手段,可以利用seaborn的regplot方法来制作一个散布图,并加上一条线性回归的线。

sns.regplot('m1', 'unemp', data=trans_data)

探索式数据分析工作中,同时观察一组变量的散布图是很有意义的,这也被称为散布图矩阵。seaborn提供了一个便捷的pairplot函数,它支持再对角线上放置每个变量的直方图或者密度估计:

sns.pairplot(trans_data, diag_kind='kde', plot_kws={'alpha':0.2})

plot_kws参数可以让我们传递配置选项到非对角线元素上的图形使用。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值