gpt4 book ai didi

r - ggplot2 图形质量在shinyapps.io 上 Shiny

转载 作者:行者123 更新时间:2023-12-03 02:20:53 25 4
gpt4 key购买 nike

问题摘要:当托管在shinyapps.io 上时,ggplot2 图表的 Shiny 质量似乎很差。图形元素包含可见缺陷,例如geom_point() 的点不是圆形的,有些看起来像三角形,有些像矩形等。图例看起来就像是从低分辨率 jpg 中放大的。我的例子是 here .

问题:是否有任何选项可以控制图形质量,例如 dpi?

详细描述:开发一个简单的Shiny应用程序时,我注意到ggplot图的边缘有点粗糙,并且无法改善这种情况。 example app很好地证明了这一点,请注意这些点看起来是不规则形状的。当我将缩放(在 Chrome 中)增加到 200% 或更多时,它们的形状会改善,接近圆形。在 100% 缩放时,整个图表看起来很奇怪而且不平滑。就好像当图像分辨率降低 0.77 倍或类似的值时,您会得到轻微的失真伪影;类似的效果在这里。查看它的最简单方法是以 100% 缩放下载图像(右键单击,另存为),然后在本地副本上增加缩放。你会发现点与圆相差甚远。 server.Rui.R 的代码非常简单:

# ui.R

shinyUI(fluidPage(
titlePanel("My Shiny App"),
sidebarLayout(
sidebarPanel(
h4("The graph looks rough")),
mainPanel(
plotOutput("myplot",width=800,height=600)
)
)
))

# server.R

library(ggplot2)
data(mtcars)

shinyServer(
function(input, output) {
output$myplot <- renderPlot({
p <- ggplot(data=mtcars,aes(x=mpg,y=disp,color=factor(cyl)))
p <- p + geom_point()
print(p)
})
}
)

我很好奇这是否可以改进。 Shiny 是传达科学结果的强大工具,但这些视觉制品在某种程度上破坏了令人惊叹的效果。谢谢!

编辑:表达该问题的更正确方法可能是说默认 PNG 图像中没有抗锯齿功能。

编辑2:为了使这个问题对其他SO用户更有值(value),以下是使用Cairo设备之前和之后的图表的屏幕截图(在浏览器中使用缩放功能可以更好地查看差异):

Without Cairo graph With Cairo graph

最佳答案

由于您可能使用的是基于 Linux 的服务器,因此您可能需要使用 Cairo 图形库。

Cairo 是一个支持多种输出设备的 2D 图形库。当前支持的输出目标包括 X Window 系统(通过 Xlib 和 XCB)、Quartz、Win32、图像缓冲区、PostScript、PDF 和 SVG 文件输出。实验后端包括 OpenGL、BeOS、OS/2 和 DirectFB。 Cairo 旨在在所有输出媒体上产生一致的输出,同时利用可用的显示硬件加速(例如通过 X 渲染扩展)。就我个人而言,我将它用于 Alpha channel (透明度选项)。

方便的是,有一个 R 实现可以在“Cairo”包中创建 cairo 图形设备。实际上,您必须将以下 block 添加到“server.R”:

#install.packages("Cairo")
library(Cairo)
options(shiny.usecairo=T)

应该可以了。

PS:我看到@MathewPlourde 已经在评论中回答了这个问题。

关于r - ggplot2 图形质量在shinyapps.io 上 Shiny ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com