作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 ggplot2
创建了一些图表我想嵌入到 Web 应用程序中:我想用工具提示增强绘图。我研究了几个选项。我目前正在试验 rCharts
图书馆,其中包括酒窝图。
这是原始的ggplot:
这是将其转换为酒窝图的第一次尝试:
我有几个问题:
df <- read.csv("ps-income-shares.csv")
library("rCharts")
p <- dPlot(
value ~ Year,
groups = c("Fractile"),
data = transform(df, Year = as.character(format(as.Date(Year), "%Y"))),
type = "line",
bounds = list(x = 50, y = 50, height = 300, width = 500)
)
p$yAxis(type = "addMeasureAxis", showPercent = TRUE)
showPercent
?
library("ggplot2")
library("scales")
p <- ggplot(data = df, aes(x = Year, y = value, color = Fractile))
p <- p + geom_line()
p <- p + theme_bw()
p <- p + scale_x_date(limits = as.Date(c("1911-01-01", "2023-01-01")), labels = date_format("%Y"))
p <- p + scale_y_continuous(labels = percent)
p <- p + theme(legend.position = "none")
p <- p + geom_text(data = subset(df, Year == "2012-01-01"), aes(x = Year, label = Fractile, hjust = -0.2), size = 4)
p <- p + xlab("")
p <- p + ylab("")
p <- p + ggtitle("U.S. top income shares (%)")
p
p$xAxis(inputFormat = '%Y-%m-%d', outputFormat = '%Y')
p$yAxis(outputFormat = "%")
p$setTemplate(afterScript = "
<script>
myChart.axes[0].timeField = 'Year'
myChart.axes[0].timePeriod = d3.time.years
myChart.axes[0].timeInterval = 10
myChart.draw()
myChart.axes[0].titleShape.remove() // remove x label
myChart.axes[1].titleShape.remove() // remove y label
myChart.svg.append('text') // chart title
.attr('x', 40)
.attr('y', 20)
.text('U.S. top income shares (%)')
.style('text-anchor','beginning')
.style('font-size', '100%')
.style('font-family','sans-serif')
</script>
")
p
myChart.axes[1].titleShape.text('Year')
p$set(width = 1000, height = 600)
p$legend(
x = 580,
y = 0,
width = 50,
height = 200,
horizontalAlign = "left"
)
p$save("ps-us-top-income-shares.html", cdn = TRUE)
df$Year <- strftime(df$Year, format = "%Y")
n <- nPlot(data = df, value ~ Year, group = 'Fractile', type = 'lineChart')
最佳答案
这是解决(1)和(2)的一种方法。论据 showPercent
不是将 % 添加到值中,而是重新计算值,使它们叠加到 100%,这就是您看到您指出的行为的原因。
此时,您将看到我们仍然需要编写自定义 javascript 来调整 x 轴以使其显示为我们想要的方式。在 future 的迭代中,我们将努力允许在 rCharts 中访问整个酒窝 API。
df <- read.csv("ps-income-shares.csv")
p <- dPlot(
value ~ Year,
groups = c("Fractile"),
data = df,
type = "line",
bounds = list(x = 50, y = 50, height = 300, width = 500)
)
p$xAxis(inputFormat = '%Y-%m-%d', outputFormat = '%Y')
p$yAxis(outputFormat = "%")
p$setTemplate(afterScript = "
<script>
myChart.axes[0].timeField = 'Year'
myChart.axes[0].timePeriod = d3.time.years
myChart.axes[0].timeInterval = 5
myChart.draw()
//if we wanted to change our line width to match the ggplot chart
myChart.series[0].shapes.style('stroke-width',1);
</script>
")
p
关于R:交互式绘图(工具提示):rCharts 凹坑图:格式化轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23462320/
所以这个问题都是关于辅助 X 轴和我需要正确渲染图表的控件。 我在堆积条形图上有 x、x2、y。 我正在尝试将 x2 系列文本内容放置在顶部(成功)。 我需要将 x (按日期排序)绑定(bind)到
我是一名优秀的程序员,十分优秀!