- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在处理基因组数据时想要绘制三核苷酸的频率。我想用 ggplot2 生成一个 png 图,我在 Linux Centos 计算机上工作。正如您在图中看到的,x.axis 标签没有完全对齐,因为字母的大小不同。我想使用 monospaced 字体,所以我尝试使用“family”参数来修改主题,但这没有任何效果。我已经看到并测试了许多使用“extrafont”包的答案,但没有结果,因为它似乎不适用于 png 输出。是否有一种在 ggplot2 中使用或不使用附加包的等宽字体(例如 Courier)的简单方法?
这是我迄今为止基于最小数据集的代码示例。
testData <- data.frame(freq = rnorm(10),
context = c("ACA","ACC","ACG","ACT","CCA",
"CCC","CCG","CCT","GCA","GCC"))
a <- ggplot(testData, aes(x=context, y=freq)) +
geom_bar(stat="identity", width = 0.4, fill = "royalblue") +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5,
size = 10, family = "mono"),
axis.title.x=element_blank())
ggsave("test.png",
plot=a,
width=2, height=2,
device = "png",
dpi = 300,
type = "cairo")
最佳答案
看起来 ggsave()
中的 type = "cairo"
是导致问题的原因。
您的绘图代码是正确的,当我在 RStudio 绘图窗口中查看您的绘图时,我看到了您想要的等宽字体。但是,当您保存绘图时,等宽字体被另一种字体替换,大概是因为 cairo 有它自己的字体默认值(您保存的绘图中的所有字体都是衬线字体,即使 ggplot 默认字体是无衬线字体并且您从未编辑过y 轴上的文本)。
通过从 ggsave()
type = "cairo"
,我能够用等宽字体保存你的绘图
ggsave("test.png", plot = a, width = 2, height = 2, device = "png", dpi = 300)
关于r - 对带有 png 输出的 ggplot2 中的轴标签使用等宽字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818049/
如果图像的宽度和高度相等,我如何添加类“相等”。 这是我的代码: var img = $('img', this); var width = img.width(); var height = img
任何人都可以告诉我涵盖大部分 unicode 字符的等宽字体吗?如果没有,那么包含大部分欧洲语言字符集的等宽字体? 最佳答案 我也在寻找单色空间、丰富的 Unicode 字体。到目前为止,我使用 De
我编写了一个程序来拍摄照片并创建 ASCII 表示(ASCII 艺术)。起初,我将 ASCII 字符串写入控制台,但现在我有了一个保存文本的 JLabel。但是,JLabel 输出是不规则的,不像控制
如果我有生成的列表 我要分成几列 like this是否有可能以某种方式让列与最宽的列一样宽 . 我有一个下拉导航,目前我在 上只有一个固定宽度s 但对于较小的导航元素,如“常见问题解答”,有很多
我对编程很陌生。 我试图让三个 col-md-4 具有相同的宽度。我假设如果在 HTML 中正确引用了 Bootstrap,则不需要 CSS。任何建议将不胜感激。 代码: /*NAV LOGO*/ .
是否可以像这样制作一个纯 CSS 解决方案: 元素有一些最小宽度。 它们应该动态增长以填充所有容器宽度,然后换行 列表中的所有元素都应具有相同的宽度。 现在是这样的: 这也是我希望它看起来像的样子(我
我正在尝试通过 flexbox 创建三行,其中将包含可变数量的列(顶部和底部的行将在数量上匹配)和一个中间列,它只是一个列。 由于列数是可变的,因此父级上没有设置宽度。 我正在努力让中间列的宽度与顶部
是否可以像这样制作一个纯 CSS 解决方案: 元素有一些最小宽度。 它们应该动态增长以填充所有容器宽度,然后换行 列表中的所有元素都应具有相同的宽度。 现在是这样的: 这也是我希望它看起来像的样子(我
我将对象动态添加到面板,然后添加到我的边框布局。我需要西部、中心和东部的大小都相等。这是我目前所拥有的: static int width = 300;//Screen width static in
我有一列 4 个元素。由于内容不同,所有元素的宽度都不同。使用 flexbox,有谁知道如何使所有元素与最大元素的宽度相同,同时保持它们全部居中? 这是我目前拥有的。 .container { d
我正在创建一个表单,我有 2 个并排的 div。这是我当前的 html: First name Middle n
如何并排排列 3 个 UIButton。我正在使用自动布局。我的要求是: 1.无论设备如何,它们都应该是等宽的 2.从 View 的开始到结束垂直占据 我尝试了不同的方法,我没能实现。是否可以通过界面
我在 flexbox 中使用 box-sizing: border-box; 具有不同的 border 厚度。我希望 flexbox 中的元素具有相等的宽度,但它会计算没有边框的元素的 width。
我在 flexbox 中使用 box-sizing: border-box; 具有不同的 border 厚度。我希望 flexbox 中的元素具有相等的宽度,但它会计算没有边框的元素的 width。
我是一名优秀的程序员,十分优秀!