第一章:python:ggplot
第2节:python:ggplot图形画法
1,绘制散点图,geom_point()
读取外部数据进行绘图,例子:
>>> import pandas as pd
>>> from ggplot import *
>>> df=pd.read_table('C:\Users\lenovo\Desktop\mtcars.txt')
>>> df
··name type number volume size other
0 td T 96 3 20 c
1 sf F 87 5 65 c
2 cc F 79 9 80 d
#如果读取的数据没有column可以添加,例如:df.columns=['name','type','number','volume','size','other']
>>> p=ggplot(df, aes(x='number', y='volume', size='factor(size)', color='factor(other)'))+geom_point()
>>> print p
1)最简单的散点图
p=ggplot(df, aes(x='number', y='volume', size='size', color='other'))+geom_point()
2)color,size,shape的使用(对数据进行分组)
p=ggplot(aes(x='wt', y='mpg', color='cyl'), data=df)+geom_point()
如此产生的图形,其中的color颜色是一种渐变颜色,会根据“cyl”的值不同依照其值的大小,可产生颜色渐变的效果。
p=ggplot(aes(x='wt', y='mpg', color='factor(cyl)'), data=df)+geom_point()
如果color加入factor参数则产生离散型散点图效果,即图中三点颜色按照组别进行区分,不再是颜色渐变的效果
3)在数据层和几何图形层color的区别
在aes()当中color代表分类变量,使用“cyl”这个变量去当作颜色区分,而使数据进行分类,而color在geom_point()中则单纯的代表图形上色的意思。
4)透明度 alpha(作用:用于样本过多时区分具体数据)
ggplot(aes(x='carat', y='price', color='factor(color)'), data=diamonds)+geom_point()
往往在大样本量的情况下,颜色深的地方代表该位置的样本量多,而颜色浅的地方样本量少,但是如果过多的样本都集中在某个固定的狭小位置,后某些特定区域的话,由于点过多而无法区分较多的数量位点和过多的数量位点(例如100个位点和1000个位点)之间的差别。
所以要通过下面的三种方法,来解决某位点样本量过大而造成的无法区分问题。(重点)
1> alpha(利用降低透明度的方法区分样本数量)在降低透明度能够更好的区分样本数量,原本样本量达到100的位点的颜色深度会小于样本量达到1000的位点的颜色深度。而样本量为10的位点则因为透明度很低则几乎在图中看不清晰了。
代码实例:
ggplot(aes(x='carat', y='price', color='factor(color)'), data=diamonds)+geom_point(alpha=0.1)
2> geom_jitter(加入扰动,表示随机的在密集位置的旁边进行扩散,则能够将图中重复出现的点显示出来)
表示如果某位点在图表当中重复出现多次,在原来图表中该点则只显示一次,而加入扰动之后,则会将该位置重复出现的点,随机向四周移动一小段距离,这样密集点的位置会相应的扩大,这个密集的点的面积会相应增加,重复出现的数值越多,则点越大。
代码实例:
ggplot(aes(x='carat', y='price', color='factor(color)'), data=diamonds)+geom_jitter(alpha=0.1)
3> dataframe.sample() (数据抽样方法,利用pandas的数据抽样方法,随机抽取一定数量的数据进行绘图)随机抽样可得到一定的样本数,而这些样本数具有总体样本数的一些特性,用部