我在r中几乎完成了Route::group(
[
'namespace' => 'Api\V1',
'prefix' => 'v1',
], function(){
Route::get('posts', ['uses'=>'PostsApiController@index']);
Route::get('posts/{id}', ['uses'=>'PostssAPIController@show']);
});
。但它需要最后的修补。
这是我的代码
barplot
我得到的图表是
我真正想要的是类似于下面的图片,
值viz 126,108 ..应正确放置(栏旁边)。
参数名称太小了。我希望它们清晰可见。当我尝试使用cex.names增加大小时,它不会出现在情节中。
我也尝试包含传奇。它没有用。
答案 0 :(得分:3)
您可以为pos
定义值向量,以便为每个条形图定义单独的位置
您可以在cex
电话
text
参数
请参阅?legend
您可以使用space
参数在条形图上添加空格
一些代码
HSI <- c(126,104,112,94,86)
HSI <- HSI-100
x <- barplot(HSI, main="HSI of Age", col=rainbow(10), space=2,
horiz=T,axes=F, xlim=c(-50,50))
axis(1,at=seq(-50,50,10), labels = seq(50,150,10))
# add vertical line at HSI=100(0)
abline(v=0)
text(HSI, x, labels = 100+HSI, pos = c(2, 4)[(HSI>0)+1], cex=2)
legend("topright", legend=HSI+100, title="Mylegend", fill=rainbow(10), horiz=F)
哪个给出了
答案 1 :(得分:2)
这是四个不同的问题。对于名称太小的问题2,将cex.names
更改为更大的值(如1或2)。我无法重现它没有出现在情节中的问题,但解决该问题的一个方法可能是改变情节的边缘:
par(mar=c(3,6,3,3))
第二个参数是左侧边距。
我没有足够的声誉来添加评论以要求澄清,所以我必须把它放在这里。你在制作传奇时遇到了什么问题?我可以用legend(15,5,"legend stuff")
做得很好,但更好的方法,因为你的情节高度不明确,就是使用内置选项legend.text
:
legend.text=c("thing 1","thing 2", "thing 3", "thing 4", "thing 5")
将此作为一个参数添加到barplot()函数中。
问题1的一个解决方案是为文本的位置选择不同的数字。例如:
HSITextPosition = 5*sign(HSI)+HSI
text(HSITextPosition, x, labels = 100+HSI)
对于问题4,您需要更改space
中的barplot()
选项,从而调整条形之间的空间。
总的来说,您应该阅读barplot()
函数或您正在使用的任何其他函数的文档,因为它解释了很多内容。完整代码:
HSI <- c(126,104,112,94,86)
HSI <- HSI-100
HSITextPosition = 5*sign(HSI)+HSI
Category <- c("Group 1","Group 2","Group 3","Group 4","Group 5")
par(mar=c(3,6,4,4))
x <- barplot(HSI, main="HSI of Age", col=rainbow(10), names.arg=Category,
cex.names=1, las=1, horiz=T,axes=F,
xlim=c(-50,50),space=2,
legend.text=c("thing 1","thing 2", "thing 3", "thing 4", "thing 5"))
axis(1,at=seq(-50,50,10), labels = seq(50,150,10))
text(HSITextPosition, x, labels = 100+HSI)
答案 2 :(得分:1)
如果您愿意使用ggplot2
,几乎所有内容都可以在图形语法中进行更改和调整。所以对于你的数据:
HSI <- c(126,104,112,94,86)
HSI <- HSI-100
df <- data.frame(HSI=HSI,
Category=c("Above Rs 1cr", "Rs 50 Lakh to Rs 1cr",
"Rs 30 to 50 Lakh", "Rs 20 to 30s Lakh",
"Rs 10 to 20 Lakh"))
我们可以使用ggplot
创建一个条形图,您可以在其中控制您要求的许多项目:
ggplot(df, aes(x=Category, y=HSI, fill=Category)) +
geom_bar(stat = "identity", aes(width=0.7)) + # adjust width to change thickness
geom_text(aes(label=HSI, y=HSI+1.1*sign(HSI)),# adjust 1.1 - to change how far away from the final point the label is
size=5 # adjust the size of label text
)+
coord_flip() +
theme_bw()
带输出:
如果您想了解更多信息,则需要了解如何更改项目。几乎任何事情都可以在ggplot
中改变。