可视化——图表
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 + 1 3 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()
小石小石摩西摩西的学习笔记,欢迎提问,欢迎指正!!!