1 import numpy as np
2 import pandas as pd
3 import matplotlib.pyplot as plt
4
5 #%matplotlib inline #可以内嵌绘图
6
7 plt.rcParams['font.sans-serif']=['Simhei']
8 plt.rcParams['axes.unicode_minus']=False
9 %matplotlib inline
2.柱状图
柱形图,又称长条图、柱状统计图,通常用来比较两个或以上的数据,或维度较为简单的数据集,该图通常用于数据的对比。
1 zzt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='柱状图')
2 3 zzt.head()
放款产品类型 | 数量 | |
---|---|---|
0 | 小贷产品 | 11769 |
1 | 普通收入人群产品 | 3359 |
2 | 高收入人群产品 | 765 |
3 | 教育产品 | 3352 |
4 | 公积金产品 | 3301 |
</div>
1 zzt.rename(columns={'数量':'成交总数'},inplace=True)
2 plt.figure(figsize=(10,5)) #figsize是为我们创建一个指定的长和宽的画布
3 plt.title('各产品推广情况') #添加大标题
4 plt.bar(zzt['放款产品类型'],zzt['成交总数'])
5 plt.xlabel('产品类型') #为x轴添加标题
6 plt.ylabel('成交总数') #y为y轴添加标题
7
8 plt.show()
1 plt.figure(figsize=(12,6),facecolor='oldlace') 2 #figsize是为我们创建一个指定的长和宽的画布;facecolor可以帮你设置画布的底色3 4 plt.title('各产品推广情况',fontsize=18,color='black') #添加大标题5 6 plt.bar(zzt['放款产品类型'],zzt['成交总数'],alpha=0.8,width=0.6,color='cornflowerblue') #alpha可以设置透明度;width可以控制柱形图的宽度7 8 for x,y in enumerate(zzt['成交总数'].values):9 plt.text(x-0.2,y,'%s' %y,fontsize=14,color='tomato')
10
11
12 plt.xlabel('产品类型',fontsize=14) #为x轴添加标题
13 plt.ylabel('成交总数',fontsize=14) #y为y轴添加标题
14
15 plt.xticks(rotation=-30,color='teal')
16 plt.yticks(color='teal')
17
18 plt.show()
3.条形图
条形图是用宽度相同的条形的长短来表示数据多少的图形,同样适用于与对比,是横向的柱形图。当出现以下情况时,推荐使用条形图: 1)数据类别较多,或部分数据量在图中显示较长时; 2)数据名称或字段名称较长且不能缩短时。
1 txt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='条形图')
2 txt
地区 | 利润 | |
---|---|---|
0 | 上海 | 121650.088 |
1 | 山东 | 385425.488 |
2 | 吉林 | 153058.171 |
3 | 湖南 | 156735.929 |
4 | 黑龙江 | 257172.062 |
5 | 河南 | 199519.691 |
6 | 河北 | 172031.685 |
7 | 广东 | 336670.537 |
8 | 福建 | 142601.732 |
9 | 安徽 | 149028.810 |
</div>
1 plt.figure(figsize=(10,5)) #figsize是为我们创建一个指定的长和宽的画布
2 plt.title('全国各地区分公司盈利情况') #添加大标题
3
4 plt.barh(txt['地区'],txt['利润'])
5
6 plt.xlabel('地区') #为x轴添加标题
7 plt.ylabel('盈利情况') #y为y轴添加标题
8
9 plt.show()
1 txt_jaingxu = txt.sort_values(by='利润')2 3 plt.figure(figsize=(14,7)) #figsize是为我们创建一个指定的长和宽的画布4 plt.title('全国各地区分公司盈利情况',fontsize=18) #添加大标题5 6 plt.barh(txt_jaingxu['地区'],txt_jaingxu['利润'],color='turquoise')7 8 for x,y in enumerate(txt_jaingxu['利润'].values):9 plt.text(y,x,'%.2f' %y,fontsize=12,color='tomato')
10
11 plt.xlabel('地区',fontsize=14,color='dimgray') #为x轴添加标题
12 plt.ylabel('盈利情况',fontsize=14,color='dimgray') #y为y轴添加标题
13
14 plt.xticks(color='dodgerblue',fontsize=12)
15 plt.yticks(color='dodgerblue',fontsize=12)
16
17 plt.show()
4.饼图
饼图是一种用来描述定性数据频数或百分比的图形。它通常以圆饼或椭圆饼的形式出现。 饼图的整个圆即代表一个总体的全部数据,圆中的一个扇形表示总体的一个类别,该扇面的大小由其占总体的比例决定, 且各个扇面对应比例之和必定为100%。 在实际应用中,它主要用来研究结构性问题,如:股权结构,投资结构,公司业务构成情况等。
1 bt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='饼图')
2
3 bt
.dataframe tbody tr th {vertical-align: top;
}.dataframe thead th {text-align: right;
}
</style>
国内地区 | 全年销售额占比 | |
---|---|---|
0 | 中南地区 | 0.2134 |
1 | 西南地区 | 0.1568 |
2 | 华北地区 | 0.1473 |
3 | 东北地区 | 0.0671 |
4 | 华东地区 | 0.3029 |
5 | 西北地区 | 0.1125 |
</div>
1 plt.figure(figsize=(12,6)) #figsize是为我们创建一个指定的长和宽的画布
2 plt.title('国内各地区销售额占比情况') #添加大标题
3
4 plt.pie(bt['全年销售额占比'])
5
6 plt.show()
1 plt.figure(figsize=(12,6)) #figsize是为我们创建一个指定的长和宽的画布2 3 4 5 plt.title('1-12月销售额占比情况',fontsize=18) #添加大标题6 7 plt.pie(bt['全年销售额占比'],8 explode=[0.03,0.03,0.03,0.03,0.05,0.03], #explode作用是控制各个扇面的间距,数值越大,间距越大9 wedgeprops={'linewidth':0.8,'edgecolor':'dimgray'}, #wedgeprops可以控制扇面的边框线设置
10 colors=['hotpink','gold','tomato','lightskyblue','lightsalmon','mediumturquoise'], #color的作用是控制每个扇面的颜色
11 textprops={'fontsize':12,'color':'black'},
12 autopct='%.2f%%')
13
14 plt.legend(bt['国内地区'],
15 title='地区',
16 fontsize=12,loc='center left',
17 bbox_to_anchor=(1,0,0.5,1))
18
19 plt.show()
5.折线图
折线图是由折现或曲线构成的图形,如股票的K线图、价格走势图、时间序列的趋势图等。 折线图一般由两个变量绘制,一个作为分析的变量,即下图中线所代表的含义; 另一个变量通常是定性变量或时间变量,作为分类或参考变量,用以观察分析变量的变动情况。
折线图还可以同时考察多个变量的变动情况,并从中找出数据之间的关系。
1 zxt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='折线图')
2
3 zxt.head()
.dataframe tbody tr th {vertical-align: top;
}.dataframe thead th {text-align: right;
}
</style>
月份 | 销售额 | |
---|---|---|
0 | 1月 | 765.96297 |
1 | 2月 | 676.39933 |
2 | 3月 | 706.98851 |
3 | 4月 | 807.01692 |
4 | 5月 | 534.67874 |
</div>
1 plt.figure(figsize=(12,6)) #figsize是为我们创建一个指定的长和宽的画布
2 plt.title('全年销售额变动情况') #添加大标题
3
4 plt.plot(zxt['月份'],zxt['销售额'])
5
6 plt.show()
1 plt.figure(figsize=(14,7)) #figsize是为我们创建一个指定的长和宽的画布2 plt.title('全年销售额变动情况',fontsize=18) #添加大标题3 4 plt.plot(zxt['月份'],zxt['销售额'],label='销售额',color='tomato',5 marker='o',markersize=6,linestyle='--',linewidth=2)6 7 plt.xlabel('时间',fontsize=14,color='dimgray') #为x轴添加标题8 plt.ylabel('销售额',fontsize=14,color='dimgray') #y为y轴添加标题9
10 plt.xticks(color='dodgerblue',fontsize=12)
11 plt.yticks(color='dodgerblue',fontsize=12)
12
13 for x,y in enumerate(zxt['销售额'].values):
14 plt.text(x-0.8,y,'%.2f' %y,fontsize=14,color='tomato')
15
16 plt.legend()
17
18 plt.show()
6.散点图
散点图主要用于考察两个变量之间的关系,广泛应用于统计数据整理和建模过程中。 它的主要特点是分别用X轴和Y轴来代表其所反映的变量,然后把每个数据点按照X轴和Y轴所代表变量的值,进而将其绘制在二维坐标系中。
1 x = np.random.randn(20,2)2 y = x + x**2 + 13 plt.figure(figsize=(12,6))4 5 plt.title('example') #添加大标题6 7 plt.scatter(x,y,s=24,color='orange',marker='.',label='point')8 9 plt.legend()
10
11 plt.show()
1 aa = np.random.randn(30)2 bb = np.random.randn(30)3 4 yanse = np.random.randn(30)5 plt.figure(figsize=(12,6))6 7 plt.title('example') #添加大标题8 9 plt.scatter(aa,bb,s=600*np.pi*(np.random.randn(30)**2),c=yanse,alpha=0.8)
10
11 plt.show()