R中关于显示标签的几个问题

1、使用统计变换summary后的标签值得显示,统计变换后需要用到衍生变量来显示变换后的统计值

df<-data.frame(
  x=c(3,1,5,3),
  y=c(2,4,6,10),
  label=c('a','a','a','b')
)  

ggplot(data=df,aes(x=as.character(x),y=y))+geom_bar(fun.y=sum,stat='summary')+
  
  ####非常重要,变换后在text里的y的统计值,..y..,..x..
  geom_text(stat='summary',fun.y=sum,aes(label=..y..,vjust=-2))

2、bar使用并排显示时,标签显示位置问题。如果不做任何处理,还是使用上边的数据

ggplot(data=df,aes(x=factor(x),y=y,fill=factor(label)))+geom_bar(stat='identity',position='dodge')+
  geom_text(aes(label=y,hjust=0.3))
 

显示


解决方法:

ggplot(data=df,aes(x=factor(x),y=y,fill=factor(label)))+geom_bar(stat='identity',position='dodge')+
  geom_text(aes(label=y,hjust=0.3),position = position_dodge(0.9))



3、在原始图上显示最大最小值的问题,


先获取数据源

sql<-c(
' select cust_name_cn,yyyymm as ds,gmv,amplitude,rn
  from icbubi.dwa_en_ftrd_mon_cust_gmv_d 
  where ds=max_pt(\'icbubi.dwa_en_ftrd_mon_cust_gmv_d\') and rn<=100
'
,
'select 
x0.cust_name_cn
,x1.ds
,x0.gmv
,x0.rn
from  icbubi.dwa_en_ftrd_mon_cust_gmv_d x0 join icbubi.tdl_rank_02 x1
on x0.cust_id=x1.cust_id and x1.ds=x0.yyyymm and  x0.ds =20160920  
'
,
'select
x0.cust_name_cn
,x0.gmv
,x1.rn
from icbubi.dwa_en_ftrd_cust_d x0 join icbubi.dwa_en_ftrd_mon_cust_gmv_d x1
on x0.cust_name=x1.cust_name_cn
where x0.ds=20160920
and x1.ds=20160920
'
)

d0<-exec_sql(sql[1])
d00<-exec_sql(sql[2])
d000<-exec_sql(sql[3])

3.1 在单个图上显示极值

dx<-d0[as.numeric( d0$rn)==1,]
dxmax<-data.frame(ds<-c(levels(reorder(dx$ds,-dx$gmv))[1]),gmv<-c(max(dx$gmv)))
colnames(dxmax)<-c('ds','gmv')
dxmin<-data.frame(ds<-c(levels(reorder(dx$ds,dx$gmv))[1]),gmv<-c(min(dx$gmv)))
colnames(dxmin)<-c('ds','gmv')
px<-ggplot(data=dx,aes(x=ds,y=gmv,group=1))
px+geom_line(color='red',size=1)+
  geom_text(data=dxmax,color='red',aes(x=ds,label=gmv,vjust=-1.5))+
  geom_text(data=dxmin,color='green',aes(x=ds,label=gmv,vjust=-1.5))+
  geom_point(data=dxmax,color='red',aes(x=ds,y=gmv),size=8)+
  geom_point(data=dxmin,color='green',aes(x=ds,y=gmv),size=8)+
  annotate('text',x=4,y=25,label=paste0('max value=',dxmax$gmv[1]))+
  annotate('text',x=4,y=22,label=paste0('min value=',dxmin$gmv[1]))+
  labs(x='日期',y='gmv',title='客户gmv趋势')+
  theme(


    plot.title=element_text(family="STKaiti",size=15,face='bold')
    ,axis.title=element_text(family="STKaiti",size=10)
    ,axis.text.x=element_text(angle = 30,size=8,color='black')
    ,title=element_text(family="STKaiti",size=5)
    ,strip.text=element_text(family="STKaiti",size=10,color='black')


  )

显示


3.2 在facet下显示

 在facet情况下,先要统计最大最小值得数据框(分开),但是没有找到办法能够使用同一个数据框

##开始facet test
dx<-d0[as.numeric( d0$rn)<=20,]
dxmax<-d00[as.numeric( d00$rn)<=20,]
dxtotal<-d000[as.numeric( d000$rn)<=20,]
px<-ggplot(data=dx,aes(x=ds,y=gmv,group=cust_name_cn))
px+geom_line(color='red',size=1)+
  facet_wrap(~cust_name_cn,scales='free',ncol=3)+
  geom_point(data=dxmax,color='red',aes(x=ds,y=gmv,group=cust_name_cn),size=3)+
  geom_text(data=dxmax,color='red',size=3,aes(x=ds,y=gmv,label=round(gmv,1),group=cust_name_cn,vjust=2,hjust=2))+
  labs(x='日期',y='gmv',title='客户gmv趋势')+
  theme(
    plot.title=element_text(family="STKaiti",size=15,face='bold')
    ,axis.title=element_text(family="STKaiti",size=10)
    ,axis.text.x=element_text(angle = 30,size=8,color='black')
    ,title=element_text(family="STKaiti",size=5)
    ,strip.text=element_text(family="STKaiti",size=10,color='black')

    
  )

显示:


facet情况下有两个问题没有解决:1、使用同一个数据源显示极值、2、和3.1一样使用annotate

设置雷达图(也称为同心圆图或星形图)每一项的标签显示通常涉及到数据可视化过程的元素定制。在创建雷达图时,你需要为各个维度或角度提供清晰的文字标签,以便读者理解图表内容。以下是设置雷达图标签的一般步骤: 1. **选择合适的图形库**:大多数数据可视化软件包(如Python的`matplotlib`或`seaborn`,JavaScript的`D3.js`,或者R语言的`ggplot2`)都包含创建雷达图的功能。 2. **定义轴(labels)**:在创建雷达图之前,首先确定你要展示的数据有多少个维度,并给每个维度命名。例如,如果你在做团队评估,可能有“工作效率”、“沟通能力”、“创新思维”等几个方面。 ```python labels = ['工作效率', '沟通能力', '创新能力', '协作精神'] ``` 3. **设置轴值**:对于每个维度,你可以指定数值或百分比。这将决定每条线在雷达图上对应的刻度。 4. **添加标签**:在绘制雷达图时,使用`set_xticks()`(Python)或`axis.set_xticklabels()`(Matplotlib)等函数来设置每个轴的角度标签,并用`set_yticklabels()`设置具体的文字标签。 ```python ax = plt.subplot(111, polar=True) ax.set_xticks(np.arange(len(labels)), labels=labels) ``` 5. **调整外观**:有时候,为了更易读,你还可以调整标签的位置、旋转角度、字体样式等。 6. **显示图表**:最后,调用绘图函数来显示整个雷达图。 记住,每个图形库的API可能会有所不同,但基本思路是一致的:定义标签,然后应用到适当的绘图元素上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值