常见的可视化试图列举
可视化视图可以分成4大类:比较、联系、构成和分布。他们的特点如下:
- 1、比较:比较数据之间的各类别的关系,或者是他们随着时间的变化趋势,比如折线图;
- 2、联系:查看两个或者两个以上的变量之间的关系,比如散点图;
- 3、构成:每个部分占整体的百分比,或者是随着时间的百分比变化,比如饼状图;
- 4、分布:关注单个变量,或者多个变量的分布情况,比如直方图。
同样,按照变量的个数,可以把可视化视图划分成为单变量分析和多变量分析:
- 1、单变量分析指的是一次只关注一个变量。比如只关注“身高”这个变量,来看身高的取值分布,而暂时忽略其他的变量。
- 2、多变量分析可以让我们在一张图上查看两个以上的变量的关系。比如身高和年龄。可以理解为是同一个人的两个参数,这样在同一张图中可以看到每个人的身高和年龄的取值,从而可以分析出这两个变量之间是否存在某种联系。
可视化的试图分门别类,主要有下面的10种比较常用:1、散点图、2、折线图、3、直方图、4、条形图、5、箱型图、6、饼图、7、热力图、8蜘蛛图、9、二元变量分布、10、二元变量分布以及成对关系。
1、散点图:
举个最简单例子,一个点的可视化就是:
import matplotlib.pyplot as plt
plt.scatter(1, 2, marker="o") # mark的值可以设置为"x",">","o"
plt.show()
上面使用的是Matplotlib库,下面也可以使用基于Matplotlib的seaborn这个更高级的库,实现代码:
import seaborn as sns
# data就是我们需要传入的数据,数据是DataFrame类型,scatter 代表散点的意思,kind可以取其他的值,代表不同的绘制方式
sns.jointplot(x,y,data=None,kind='scatter')
假设我们有很多数据,需要将这些数据画成散点图真么做?可以使用随机数来进行模拟:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
# 使用 Matplotlib 画散点图
plt.scatter(x,y,marker='x')
plt.show()
# 使用seaborn 画散点图
df = pd.DataFrame({
'x':x,'y':y})
sns.jointplot(x='x',y='y',data=df,kind='scatter',marker='v');
plt.show()
效果图如下所示,先显示Matplotlib画出的图,然后显示使用Seaborn画出的图:
可以看到seaborn工具还帮我们做了密度统计,比纯粹的Matplotlib统计的数据更加丰富。
2、折线图
在Matplotlib中,我们可以直接使用plt.plot()函数,当然可以需要提前把数据按照x轴的大小进行排序,否则画出来的折线图就无法按照x轴递增的顺序展示
在Seaborn中,可以使用sns.lineplot(x,y,data=None)函数。其中x,y是data中的下标。data就是我们要传入的数据,一般是DataFrame的类型。
这里我们设置了x,y的数组。x数组代表时间(年),y数组可以随便设置几个取值,者几个值是可以没有顺序的,毕竟是折线图:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据准备
x = [2010,2011,2012,2013,2014,2015,2016,2017,2018,2019]
y = [5,3,6,20