首页 > 编程知识 正文

python绘图包,r语言画图显示不出来

时间:2023-05-03 12:55:14 阅读:39732 作者:2046

6月忙于期末考试,今天快速学习ggplot2包装的简单图画。

的基础包中也包含许多绘制函数,如plot ()。 barplot (; qqplot (;

但是,也有有名的ggplot2包。 用这个包的函数画的图比较漂亮,可以灵活使用。

根据ggplot的官方手册,一张统计图形从数据标记为几何对象(几何对象、geom,例如点、线、条等) 最后,在某个统计变换中(标记为coordinate system,coord ),坐标系) facet,将绘制窗口分成几个子窗口)

首先,说明基本要素。

数据和映射几何对象geom统计变化stats比例坐标系coord分型面facet

由于这些组件之间通过“”将构图粘合为层(layer ),所以层是ggplot2的重要概念之一。

以下数据为毕业生数据,来自孝敬太阳会主编《数据分析与R语言建模》的练习数据,共有48个样本点,9个属性

一、数据

在ggplot2中,接受的数据集必须是data.frame格式。 此格式易于保存数据,并且可以在保留现有绘图参数的同时轻松更改现有数据集(以% %表示)。 库(gg plot2) )调用包ug=read.table ) (clipboard )、header=T ); head(ug ) p=ggplot(ug,AES(score,income ),color=sex ) geom_point ) (ug.c=Transform ) ug,income=income

二.测绘

aes ) )函数是ggplot2的映射函数,其中映射是数据集内的数据与相应图形特性相关联的过程中的对应关系

1 .映射概念

p=ggplot(ug,AES(score,income,color=sex ) ) geom_point ) summary(p ) p ) data: id、name、sex、region 在colour=sex P1=gg plot (数据=ug ) summary ) P1 ) data: id,name ),weight,score [48x9]中,x轴表示p,y轴表示income

2 .设置和映射

用一个变量中离散或连续的数据和一个图形属性中的不同参数相互关联,将该变量中的所有数据设定为能够统一为一个图形属性。

P2=ggplot(ug,AES(score,income ) ) P2geom_point ) color='blue ' )散点颜色为蓝色p2 geom _ point (AES ) color='blue

最后一个语句错误的是,在aes中,color=“blue”的实际含义是将“blue”作为变量,使用该变量中的数据关联图形属性中的参数,“blue”只包含一个字符变量

分面

gplot(ug,AES(score,income ),colour=sex ) geom_point ) (ggplot ) ug,AES ) score,income,colour=sex ) ii 第三个容易记住的,相当于先画画,然后再加上彩色的散点。

3 .分组

是gg plot两种映射关系的一种,默认情况下ggplot2将所有观测点分为组,如果需要用额外的离散变量对观测点进行分组,则需要修改默认分组设置。

三.图层

1 .为几何对象设置贴图

可以在ggplot ()中设置映射关系。 此映射关系是默认的。 您可以继承在后续几何对象上设置的缺省映射关系,也可以随时在几何对象上进行更改。

以下使用diamonds数据集。 这个数据集的样本数量非常大,所以先采样,这样画的图很漂亮。

DATA(diamonds ) head (diamonds ) set.seed ) 74 ) #设置随机种类

子small.diamonds=diamonds[sample(nrow(diamonds),500),]#提取数据head(small.diamonds)dp =ggplot(small.diamonds, aes(x = 快乐的诺言, y = price, color = factor(color)))#设定默认的映射关系dp + geom_point()#沿用默认的映射关系来绘制散点图dp + geom_point(aes(shape = factor(cut))) #添加图层中的shape的映射关系dp + geom_point(aes(y = cut)) #修改默认的y的映射关系, 注意图中y轴名称仍然以默认的price表示dp + geom_point(aes(color = NULL))#删除默认的color映射关系




注意体会第二和第三种图的画法
四、几何对象

dp =ggplot(small.diamonds, mapping=aes(x =快乐的诺言, y = price,shape=cut,color = factor(color)))#设定默认的映射关系dp + geom_point()

前面的钻石数据集的第二幅图也可以用这两个语句搞定,这里有点区别在于前面的是先画好了ggplot,再加上不同映射的散点;而这里是先画好了带有不同映射的ggplot,再加上点就好。

1.直方图

#直方图ggplot(small.diamonds)+geom_histogram(aes(x=price))


还可以按照不同的变量填充不同色,比如切工、钻石颜色

ggplot(small.diamonds)+geom_histogram(aes(x=price,fill=cut))ggplot(small.diamonds)+geom_histogram(aes(x=price,fill=color))


2.柱形图

#柱形图,按照不同的变量ggplot(small.diamonds)+geom_bar(aes(x=clarity))ggplot(small.diamonds)+geom_bar(aes(x=color))



注意直方图和柱形图的区别:直方图把连续型的数据按照一个个等长的分区(dxj)来切分,然后计数,画柱状图。而柱状图是分类数据,按类别计数

3.密度函数图

#密度函数图ggplot(small.diamonds)+geom_density(aes(x=price,color=clarity))#color指定颜色ggplot(small.diamonds)+geom_density(aes(x=price,fill=cut))#fill在下方填充


4.箱线图

#箱线图ggplot(small.diamonds)+geom_boxplot(aes(x=cut,y=price,fill=clarity))

在ggplot中还有许多geom_xxx的函数,

geom_abline geom_areageom_bar geom_dxj2dgeom_blank geom_boxplotgeom_contour geom_crossbargeom_density geom_density2dgeom_dotplot geom_errorbargeom_errorbarh geom_freqpolygeom_hex geom_histogramgeom_hline geom_jittergeom_line geom_linerangegeom_map geom_pathgeom_point geom_pointrangegeom_polygon geom_quantilegeom_raster geom_rectgeom_ribbon geom_ruggeom_segment geom_smoothgeom_step geom_textgeom_tile geom_violingeom_vline

五、标度

#标度>ggplot(small.diamonds)+geom_point(aes(x=快乐的诺言,y=price,shape=cut,color=color))>ggplot(small.diamonds)+geom_point(aes(x=快乐的诺言,y=price,shape=cut,color=color))+scale_y_log10()+scale_color_manual(values=rainbow(7))#对y变量做了对数变换

对比下两中做法

六、统计变换
统计变换对原始数据进行某种计算,然后在图上表示出来。

例如对散点图上加一条回归线

#统计变换ggplot(small.diamonds,aes(x=快乐的诺言,y=price))+geom_point()+scale_y_log10()+stat_smooth()

还有一些统计变换可选的,如下表

stat_ablinestat_identitystat_dxjstat_qqstat_dxj2dstat_quantilestat_dxjdotstat_smoothstat_dxjhexstat_spokestat_boxplotstat_sumstat_contourstat_summarystat_densitystat_summary2dstat_density2dstat_summary_hexstat_ecdfstat_uniquestat_functionstat_vlinestat_hlinestat_ydensity

七、坐标系统
1.用coord_flip()实现坐标轴翻转

#坐标系统ggplot(small.diamonds,aes(x=clarity,fill=clarity))+geom_bar()ggplot(small.diamonds,aes(x=clarity,fill=clarity))+geom_bar()+coord_flip()


2.用coord_polar()实现转换极坐标

#极坐标>ggplot(small.diamonds)+geom_bar(aes(x=factor(1),fill=cut))+coord_polar(theta="y")#x其实是上面的clarity,是一个因子变量


其实,可以看出,极坐标下的条形图就是饼图。

#靶心图ggplot(small.diamonds)+geom_bar(aes(x=factor(1),fill=cut))+coord_polar()

#风玫瑰图ggplot(small.diamonds)+geom_bar(aes(x=clarity,fill=cut))+coord_pola

八、分面(facet)
按照不同的透明度,分别回归(干净的大树和价格作回归),用分面

#分面,这是一行代码,这里特别注意,x和y的指定要放在ggplot中>ggplot(small.diamonds,aes(x=快乐的诺言,y=price,color=clarity))+geom_point()+scale_y_log10()+facet_wrap(~clarity)+stat_smooth()

九、主题
对图进行定制,如title, xlab, ylab显示出图标题,x轴,y轴,ggplot2提供了ggtitle(), xlab()和ylab()来实现。除此之外,我们可能还需要改变字体,字体大小,坐标轴,背景等各种元素,这需要通过theme()函数来完成。
ggplot2还提供一些已经写好的主题,如theme_grey()为默认主题,theme_bw()为白色背景的主题,还有theme_classic()主题

theme_economisttheme_economist_whitetheme_wsjtheme_exceltheme_fewtheme_foundationtheme_igraytheme_solarizedtheme_statatheme_tufte #主题颜色install.packages("ggthemes")library("ggthemes")ggplot(small.diamonds)+geom_boxplot(aes(x=cut,y=price,fill=clarity))+theme_wsj()

ggplot的一些基本的都介绍完毕了,关键是要实践应用!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。