【问题标题】:R plotly, change ticks to italicR plotly,将刻度更改为斜体
【发布时间】:2019-05-06 09:43:58
【问题描述】:

我是 R 的初学者,我尝试用它来绘制简单的条形图。这个想法是获取给定区域中存在的各种土壤类型的面积值,计算每种土壤的百分比份额并将其绘制为垂直条。一切正常,但我似乎无法找到将 yaxis 刻度标签更改为斜体的方法,这是命名它们时的常见做法。下面我介绍目前为止的代码。

我似乎找不到合适的参数来将 tickfont 更改为斜体,我尝试了 font.main = 3face = 'italic'font = 3 ,但似乎没有任何效果。我知道下面显示的列表f3 对图表有影响,因为它会修改刻度文本的大小,只是似乎没有什么可以使它变成斜体。

f3 <- list(family = "Arial, sans-serif", size =10, color = "black", font = 3)
b <- list(title = "Soil grouping", titlefont = f2, tickfont = f3)
p <- plot_ly(x,  y = ~Soil, x = ~pro, type = 'bar', orientation = "h") %>% layout(xaxis = a, yaxis = b)

我希望获得与所链接的图表相似的图表,只是土壤名称以斜体显示。提前致谢

【问题讨论】:

    标签: r plotly


    【解决方案1】:

    不幸的是,这不适用于默认参数。但是 plot_ly 确实让我们有机会使用 HTML 代码作为标签/刻度。因此,一种解决方法是使用您的数据名称并将其包装在 HTML 中。我将ticktexttickvals 替换为用HTML 命令包装的相同值。

    由于您没有提供完整数据,我使用了公共数据集:

    plot_ly(iris, x=~Sepal.Length, y=~Species,  type = 'bar', orientation = "h") %>% 
       layout(yaxis = 
                   list(title = "Soil grouping",
                        ticktext = sprintf("<i>%s</i>", levels(factor(iris$Species))),
                        tickvals = levels(factor(iris$Species))
                        )
                )
    

    为此,我使用sprintf 并将iris$Species 的不同名称包装为

    <i></i>
    

    这是 HTML - 代码“在斜体之间放置字母”。

    可以使用粗体&lt;b&gt;&lt;/b&gt;

    输出如预期:

    现在可以轻松地为您的任务修改此代码。

    【讨论】:

    • 感谢您的解决方法,这正是我所需要的。现在可以了
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 2019-01-30
    • 2018-04-13
    • 1970-01-01
    • 2021-12-04
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多