- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题摘要:当托管在shinyapps.io 上时,ggplot2 图表的 Shiny 质量似乎很差。图形元素包含可见缺陷,例如geom_point() 的点不是圆形的,有些看起来像三角形,有些像矩形等。图例看起来就像是从低分辨率 jpg 中放大的。我的例子是 here .
问题:是否有任何选项可以控制图形质量,例如 dpi?
详细描述:开发一个简单的Shiny应用程序时,我注意到ggplot图的边缘有点粗糙,并且无法改善这种情况。 example app很好地证明了这一点,请注意这些点看起来是不规则形状的。当我将缩放(在 Chrome 中)增加到 200% 或更多时,它们的形状会改善,接近圆形。在 100% 缩放时,整个图表看起来很奇怪而且不平滑。就好像当图像分辨率降低 0.77 倍或类似的值时,您会得到轻微的失真伪影;类似的效果在这里。查看它的最简单方法是以 100% 缩放下载图像(右键单击,另存为),然后在本地副本上增加缩放。你会发现点与圆相差甚远。 server.R
和 ui.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设备之前和之后的图表的屏幕截图(在浏览器中使用缩放功能可以更好地查看差异):
最佳答案
由于您可能使用的是基于 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/
我正在开发一个 R + Shiny 应用程序。最初我将一个数据集加载到我的内存中并根据用户的输入日期对其进行切片。 例如:我下载了过去 90 天的观察结果。如果用户选择以图表形式查看过去 20 天,我
我正在尝试在线部署 R Shiny 应用程序。该应用程序在本地部署时运行完美。它基本上只是一个图表仪表板。 但是,当我将其部署在 Shinyapps.io 上时,该应用程序仅显示以下错误: "ERRO
我有一个 Shiny 的应用程序,我想为使用谷歌登录登录该应用程序的成员启用某些功能。我无法使用 GoogleAuthR 包在我的应用程序中实现 Google 登录和身份验证过程。有没有人有一个示例
我想将安全参数传递给 shinyapps.io 部署,以便我的应用程序可以通过以下方式获取它们: Sys.getenv('PASSWORD_X') 我在 deployApp 中找不到任何相关信息rsc
我有以下应用程序在我的计算机上运行良好,但是,在 shinyapps 上部署时会抛出错误: ui.R library(shiny) library(ggplot2) library(dplyr) li
这是 Shinyapps.io 设置的屏幕截图。有人可以解释一下这些东西是什么以及它们之间的关系吗?在设置区域和 Shiny 的服务器中只有一个有限的 liner 定义 admin guide这并没有
我想使用命令 shiny::runApp() 部署我的应用程序。我的问题是是否可以使用 https 而不是 http 来做到这一点(我无法安装 Shiny 的服务器)。 现在我以这种模式运行:shin
当我尝试配置我的 shinyapps 时根据 https://github.com/rstudio/shinyapps/blob/master/guide/guide.md 上的指南,在 my.shi
我有一个没有右边距的 plotly 图(底部都没有)。找不到添加此额外空间的文档,因此我的 y 轴(此图处于水平模式)不会被剪切。 ui.R: tabItem(tabName = "ga",
需要将shinyapp.io的部署路径从 https://username.shinyapps.io/abc 到 https://username.shinyapps.io/xyz 任何人都可以建议如
我在 ShinyApp 中使用 renderPrint 函数来显示计算结果。结果前面带有 [1],[2] 等。 有没有办法摆脱它? 此外,是否可以更改输出的字体? 最佳答案 您可以使用 renderT
我在 ShinyApp 中使用 renderPrint 函数来显示计算结果。结果前面带有 [1],[2] 等。 有没有办法摆脱它? 此外,是否可以更改输出的字体? 最佳答案 您可以使用 renderT
我在 shinyApp 的一列中有一些下载按钮。我想为该列中的所有下载按钮修复相同的宽度。 我不知道怎么办。我已经尝试使用 tags$style(".btn: { vertical-align: mi
我正在尝试使用 shinyapps.io 部署一个在本地运行良好的 Shiny 应用程序。我遇到以下错误: Error detecting locale: Error in read.table(fi
当我刚刚编写了一个在本地完美运行的应用程序,但是当我尝试在线部署它时,我不断收到此错误: 错误信息: Preparing to deploy application...DONE Uploading
我只想了解 Shiny 应用程序中的展示模式, 当我们在本地为展示模式运行 Shiny 的应用程序时,我们可以使用这样的命令 setwd('D:/xxxx/') runApp("aa",display
我正在尝试组合一个 R + Shiny 应用程序,该应用程序至少在最初绘制日期数据的直方图。我在 RStudio 的本地系统上运行得很好,但在 Shinyapps.io 中它不起作用。 目前,该应用程
我想在 Shinyapps.io 上的 Shiny 应用程序(在绘图上)中使用自定义字体。我在 ./www/ 目录中有我的 Roboto-Regular.ttf。这是我的 app.R 文件的上半部分:
我有一个 Shiny 的应用程序,它已经在 Shinyapps.io 上托管了一段时间。 我下载了该应用程序并在本地进行了测试,其中一项功能的行为略有不同。我相信这是由于某些库的不同版本。 我想知道是
我遵循了 shinyapps.io 中显示的相同命令用于上传我的应用程序,但出现以下错误: > library(shinyapps) > shinyapps::deployApp("/Users/mo
我是一名优秀的程序员,十分优秀!