先介绍Pandas
-
pandas仍然想解决python里面列表和元组的问题,也在尝试解决字典在大数据应用中速度过慢的问题。有两个改进,一个是DataFrame,还有一个是针对dic的series的改进。
-
与numpy不同的是,pandas在数据格式的定义上采用显示索引(explict index,与之对应的是implict index),显示行和列的名称。
matplotlib
-
引入的时候,在anaconda上用import matplotlib.pyplot as plt,首先是因为matplotlib太大,不需要全部引用。另外,pyplot依赖于很多其他的包,如果要自己配置的话,可以直接引入大礼包pylab。只不过anaconda预先把这些常用包都装载好了,不需要引入大礼包。
-
一次性修改matplotlib的字体。
plt.rcParams['font.family'] = 'DengXian'
#因为是赋值行为,所以是中括号。 -
分别修改:当在写title函数和xlabel函数时候,可以设置参数,
fontproperties = '', fontsize = 13)
#13是设置字体,fontproperties是字体。 -
下个案例集合了画多个图、统一改字体,集合改字体。查询自己电脑上自带了什么字体,查看“二”。
%matplotlib inline
#引入数据
women = pd.read_csv('data/women.csv',index_col = 0)
x = np.linspace(0,10,1000)
#画出第一个图
plt.subplot(2,3,1)
plt.xlim(11,-20)#限制图片范围
plt.ylim(2.2,-1.3)
plt.plot(x,np.sin(x), label = "sin(x)")
plt.plot(x,np.cos(x), label = "cos(x)")
#设置图片
plt.rcParams['axes.unicode_minus'] = False#解决搞成汉字后无法显示负号的问题
plt.rcParams['font.family'] = 'DengXian'#一次性规定字体
plt.title('凉宫春日的题目A',fontproperties = 'DengXian', fontsize = 13)#在句式后面规定字体
plt.xlabel('-进击的横坐标#')
plt.ylabel('辉夜的纵坐标')
#画出第二个图
plt.subplot(2,3,6)#2行3列,在第6个格子显示
plt.plot(women["weight"],women["height"],"gD")
#设置图片
plt.rcParams['axes.unicode_minus'] = False#解决搞成汉字后,坐标轴无法显示负号(变成框框)的问题
#一次性设计
plt.rcParams['font.family'] = 'DengXian'#一次性规定字体
plt.rcParams['font.style'] = 'italic'#有三种,normal,italic,oblique
plt.rcParams['font.size'] = 18#一次性规定字号
plt.legend(loc = "upper left", labels = "图")
plt.title('凉宫春日的题目B',fontproperties = 'DengXian', fontsize = 13)#在句式后面规定字体
plt.axis("tight")
plt.xlabel('-进击的横坐标#')
plt.ylabel('辉夜的纵坐标')
plt.show()
#同一个坐标画两个图可以直接plot,换行plot
plt.savefig("我画的图贼好看.jpg")#保存#也可以存png,保存在默认工作目录
- 其中,subplot(a,b,c)指a行b列从左至右,从上到下数第c个格子的位置。
- 比如
plt.subplot(1,2,2)
和plt.subplot(1,2,1)
显示如下。
#散点图的画法
#自动生成数据
#from sklearn.datasets.sample_generator import make_blobs
from sklearn.datasets import make_blobs
X,y = make_blobs(n_samples = 300, centers = 10, random_state = 0, cluster_std = 1.0)
plt.scatter(X[:,0], X[:,1], c = y, s = 5, cmap = "rainbow")
seaborn
教师工资收入的可视化分析
salaries = pd.read_csv('data/salaries.csv', index_col = 0)
salaries.head()
sns.set_style('darkgrid')
sns.set(font = "DengXian")
#sns.stripplot(data = salaries, x = "rank", y = "salary", jitter = True, alpha = 0.5)
#sns.boxplot(data = salaries, x = "rank", y = "salary").set(xlabel = "x轴", ylabel = "y轴")
salaries.head(3)
- jitter = True 设置是否对重叠数据进行抖动。
- alpha = 0.5 设置透明度
案例
墨西哥个人数据的预处理
原先是R语言的一篇文章,主要是将之转化成tidy数据的方法。现在用python来处理。是一个经典数据集。
用到了两个数据,death.xlsx和icd-main.xlsx。
等下一个博客讲