数据分析——作图(Python)

Posted 杰哥哥是谁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析——作图(Python)相关的知识,希望对你有一定的参考价值。

一、基础设置

导入相关的库

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline   #在ipython总显示图表

默认不显示中文,因此需要更改设置,显示中文 

#显示中文
import matplotlib as mpl 
mpl.rcParams[\'font.sans-serif\'] = [u\'SimHei\']
mpl.rcParams[\'axes.unicode_minus\'] = False  

设置全局变量

mpl.rc(\'font\',size=12)  #字体
mpl.rc(\'figure\',figsize=(8,6))  #图像大小
mpl.rc(\'axes.spines\',right=False,top=False)  #设置右边上边的横线是否显示

二、导入数据,并查看

data = sns.load_dataset(\'tips\')
data.head()
#字段含义分别是:总消费,小费,性别,是否吸烟,周末,时间,几个人

 

三、作图(matplotlib)

1、折线图

fig,ax = plt.subplots()  #fig主要设置一些全局的变量,而ax主要负责画图
ax.plot(data.index,data[\'total_bill\'])
fig.set_size_inches(12,6) #重新设置大小
plt.title(\'折线图标题\',fontsize=22)  #标题,更改字体大小
ax.set_xlabel(\'X轴\',fontsize=18) #设置x轴,y轴的标题
ax.set_ylabel(\'Y轴\',fontsize=18)
plt.yticks(fontsize=14) #刻度字体大小
plt.xticks(fontsize=14)
plt.legend([\'标签\'],fontsize=15)  #标签内容字体大小
plt.savefig(\'折线图\',dpi=100)  #保存图片,可以设置dpi

2、柱形图

data_bar1 = data[\'tip\'].groupby(data[\'day\']).mean() #统计数据,按照星期来分组
data_bar2 = data[\'tip\'].groupby(data[\'time\']).mean() #统计数据,按照星期来分组
error = data[\'tip\'].groupby(data[\'time\']).std() 
fig,ax = plt.subplots(1,2)   #画出两个区域
ax[0].bar(data_bar1.index,data_bar1.values)  #第一个区域怎么画
ax[0].set_xlabel(\'小费星期关系图\',fontsize=16)
ax[0].set_ylabel(\'小费\',fontsize=16)
ax[0].legend([\'星期\'])
ax[0].set_ylim(0,4)  #设置Y轴最大最小值

ax[1].bar(data_bar2.index,data_bar2.values) #第二个区域怎么画
ax[1].errorbar(data_bar2.index,data_bar2.values,yerr = error,ls = \'none\',color=\'#96CDCD\',lw=6)  #加入方差图
ax[1].legend([\'午晚餐\'])
ax[1].set_xlabel(\'小费午晚餐关系图\',fontsize=16)
ax[1].set_xticklabels([\'晚餐\',\'午餐\'])   #更改坐标轴的名称
ax[1].set_ylim(0,4)  #设置Y轴最大最小值

fig.set_size_inches(12,6)  #设置整个图的大小
plt.savefig(\'柱形图\',dpi=100)  #保存图片,可以设置dpi

 

3、横轴的柱形图

data_barh = data[\'tip\'].groupby(data[\'sex\']).mean()  #统计数据,男女小费
fig,ax = plt.subplots()
ax.barh(data_barh.index,data_barh.values,0.4)  #0.4是宽度
fig.set_size_inches(6,2)
plt.title(\'横着的\')
ax.set_ylabel(\'性别\',fontsize=20)
ax.set_xlabel(\'小费\',fontsize = 20)
plt.xticks(fontsize=14)
ax.set_yticklabels([\'男性\',\'女性\'])

  

 

4、饼图

data_pie = data[\'size\'].groupby(data[\'size\']).size()
fig,ax = plt.subplots()
ax.pie(data_pir,autopct=\'%1.1f%%\',labels=data_pie.index,colors = [\'#B0E0E6\',\'#B0C4DE\',\'#A6A6A6\',\'#FF3E96\',\'#FFB5C5\',\'#FFEBCD\'])
#数据源,显示的数值,显示标签,颜色
fig.set_size_inches(8,8)  #如果两个数字不相等会变成椭圆

 

 

5、散点图

fig,ax = plt.subplots()
ax.scatter(data[\'tip\'],data[\'total_bill\'])
fig.set_size_inches(8,6)
ax.set_xlabel(\'小费\',fontsize=18)
ax.set_ylabel(\'总消费\',fontsize=18)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)

  

 

6、几个区域的画图方法(一种是用上面的柱形图那种方法  fig,ax = plt.subplots(1,2),另一种是下面的这种,这种可以自定义占据的空格数)

fig = plt.figure()
ax1 = plt.subplot2grid((2,3),(0,0))
ax1.bar(data_bar.index,data_bar.values)
fig.set_size_inches(12,6)
ax2 = plt.subplot2grid((2,3),(0,1),colspan=2)#占据几个空额,也可以是rowspan,一个是横的,一个是竖的
ax2.scatter(data[\'tip\'],data[\'total_bill\'])
ax3 = plt.subplot2grid((2,3),(1,0))
ax3.barh(data_barh.index,data_barh.values)

 

7、两根柱形图对比

fig,ax = plt.subplots()
ax.bar(np.arange(4),data_bar.values,0.3)    #横坐标先用数字代替
ax.bar(np.arange(4)+0.3,data_bar.values*2,0.3)   #偏移一定量
ax.set_xticks(np.arange(4)+0.15)   #重新设置x轴的位置
ax.set_xticklabels(data_bar.index)   #重新设置名称

  

四、作图(seaborn)

  

 

  

  

  

以上是关于数据分析——作图(Python)的主要内容,如果未能解决你的问题,请参考以下文章

Python作图之一

数据分析——作图(Python)

不用写一行Python代码,就可以用Matplotlib绘图,妈妈再也不担心我不会作图了!

不用写一行Python代码,就可以用Matplotlib绘图,妈妈再也不担心我不会作图了!

Python作图程序

数据可视化代码实例(Matplotlib+Pandas)