我想在R中叠加两个散点图,使得每组点具有其自己的(不同的)y轴(即,在图中的位置2和4),但是这些点看起来叠加在同一图上.
有可能这样做plot
吗?
编辑显示问题的示例代码
# example code for SO question
y1 <- rnorm(10, 100, 20)
y2 <- rnorm(10, 1, 1)
x <- 1:10
# in this plot y2 is plotted on what is clearly an inappropriate scale
plot(y1 ~ x, ylim = c(-1, 150))
points(y2 ~ x, pch = 2)
Run Code Online (Sandbox Code Playgroud) 我有double-y-axis
图表制作Excel
.在Excel中,它只需要基本技能.我想做的是使用ggplot2
库复制此图表R
.
我已经这样做了,但我需要绘制Response 2nd-y-axis
.
我附上了我用过的可重现的代码:
#Data generation
Year <- c(2014, 2015, 2016)
Response <- c(1000, 1100, 1200)
Rate <- c(0.75, 0.42, 0.80)
df <- data.frame(Year, Response, Rate)
#Chart
library(ggplot2)
ggplot(df) +
geom_bar(aes(x=Year, y=Response),stat="identity", fill="tan1", colour="sienna3")+
geom_line(aes(x=Year, y=Rate),stat="identity")+
geom_text(aes(label=Rate, x=Year, y=Rate), colour="black")+
geom_text(aes(label=Response, x=Year, y=0.9*Response), colour="black")
Run Code Online (Sandbox Code Playgroud) 我如何利用 plotly.express 在一个 Pandas 数据框中的两个 yaxis 上绘制多条线?
我发现这对于绘制包含特定子字符串的所有列非常有用:
fig = px.line(df, y=df.filter(regex="Linear").columns, render_mode="webgl")
Run Code Online (Sandbox Code Playgroud)
因为我不想遍历所有过滤的列并使用以下内容:
fig.add_trace(go.Scattergl(x=df["Time"], y=df["Linear-"]))
Run Code Online (Sandbox Code Playgroud)
在每次迭代中。
我使用 plotly 和 ggplot 创建了以下数据框对象和图形
library(ggplot2)
library(plotly)
rdate <- function(x,
min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
sort = TRUE) {
dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace=TRUE)
if (sort == TRUE) {
sort(dates)
} else {
dates
}
}
DF<-data.frame(Date = rdate(100))
DF$variable<-LETTERS[seq( from = 1, to = 10 )]
DF$Value<-round(runif(1:nrow(DF),min = 10, max = 50))
Run Code Online (Sandbox Code Playgroud)
接下来我用 ggplot 创建了一个绘图对象
p <- ggplot(DF, aes(x = Date, y = Value, colour = variable)) +
geom_line() + …
Run Code Online (Sandbox Code Playgroud) 我在MATLAB中绘制一个水平箱图 - boxplot(y, group,'orientation','horizontal')
然后使用隐藏y轴set(gca,'box','off','ycolor','w')
.
它在屏幕上看起来很好 - 只有底部的x轴可见.但是每当我将图形保存到文件时,使用print()
函数或matlabfrag.m
,左边的y轴重新出现在输出文件中(尽管它没有显示在MATLAB的图形可视化中).
如何隐藏这个Y轴?
我正在尝试使用 imshow() 在 matplotlib 中绘制一个二维数组,并在第二个 y 轴上用散点图覆盖它。
oneDim = np.array([0.5,1,2.5,3.7])
twoDim = np.random.rand(8,4)
plt.figure()
ax1 = plt.gca()
ax1.imshow(twoDim, cmap='Purples', interpolation='nearest')
ax1.set_xticks(np.arange(0,twoDim.shape[1],1))
ax1.set_yticks(np.arange(0,twoDim.shape[0],1))
ax1.set_yticklabels(np.arange(0,twoDim.shape[0],1))
ax1.grid()
#This is the line that causes problems
ax2 = ax1.twinx()
#That's not really part of the problem (it seems)
oneDimX = oneDim.shape[0]
oneDimY = 4
ax2.plot(np.arange(0,oneDimX,1),oneDim)
ax2.set_yticks(np.arange(0,oneDimY+1,1))
ax2.set_yticklabels(np.arange(0,oneDimY+1,1))
Run Code Online (Sandbox Code Playgroud)
如果我只将所有内容运行到最后一行,我就会完全可视化我的数组:
但是,如果我添加第二个 y 轴 (ax2=ax1.twinx()) 作为散点图的准备,它会更改为这种不完整的渲染:
有什么问题?我在上面的代码中留下了几行描述散点图的添加,尽管它似乎不是问题的一部分。
我有一个数据集,我想用两个Y轴绘制图形.想要反转辅助Y轴,使其运行-60到-40.主Y轴应运行300-550.我无法弄清楚如何在不反转主Y轴的情况下反转辅助Y轴.现在,辅助Y轴是我想要的,但主Y轴是不正确的.
任何帮助将不胜感激!
我的数据集
X y1 y2
1 394 -45.65
1 377 -45.62
1 377 -45.72
6 342 -46.38
6 375 -46.35
6 408 -46.47
11 336 -47.22
11 349 -47.18
11 376 -47.31
16 397 -48.15
16 397 -48.1
16 397 -48.25
21 395 -49.15
21 406 -49.1
21 417 -49.25
26 390 -50.2
26 418 -50.15
26 446 -50.31
31 427 -51.28
31 438 -51.23
31 337 -51.4
36 427 -52.38
36 438 -52.33
36 337 -52.5
41 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 ggplot2 在一张图表中绘制多个箱线图。我有 1 个连续变量和几个因素。我想要一个 Y 轴,每对箱线图都有自己的 x 轴和自己的因子水平。到目前为止,我尝试将cowplot::plot_grid
我单独制作的图表与我用于 Y 轴的空图表连接在一起。我试图通过隐藏边距和调整图表大小来使图表很好地融合,但我仍然无法获得合理的结果,而且这种方法涉及太多的手动调整。这就是我想要得到的,也是我目前想到的:
图表
这是我的脚本:
library(ggplot2)
library(cowplot)
library(dplyr)
# make a dataset:
DF <- mtcars
DF$cyl <- as.factor(DF$cyl)
DF$vs <- as.factor(DF$vs)
DF$am <- as.factor(DF$am)
DF$gear <- as.factor(DF$gear)
DF$carb <- as.factor(DF$carb)
#str(DF)
# fisrt boxplot
p1 <- DF %>% ggplot() + theme_grey() + aes(x=cyl, y=mpg, fill=cyl) +
geom_boxplot() +
theme(legend.position = "none",
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank()) +
theme(plot.margin = margin(t=0.1, r=0, b=0, l=0, unit="cm"))
# second …
Run Code Online (Sandbox Code Playgroud) 我在 Win 10 下使用 Octave 4.2.1 便携式。
我在一张图表中有几个图,只有一个 y 轴,每个图都用一个plot(...)
句子创建。我想在辅助 y 轴中添加一个图到此现有图,而不是从一开始就用plotyy
, (编辑) 创建两个轴,并且能够正常工作,例如添加图例等。
正确的用法是什么?
如果我执行
plotyy(x, ysec) ;
Run Code Online (Sandbox Code Playgroud)
或者
ax = gca ;
plotyy(ax, x, ysec) ;
Run Code Online (Sandbox Code Playgroud)
我明白了
error: Invalid call to plotyy. Correct usage is:
-- plotyy (X1, Y1, X2, Y2)
-- plotyy (..., FUN)
-- plotyy (..., FUN1, FUN2)
-- plotyy (HAX, ...)
-- [AX, H1, H2] = plotyy (...)
Run Code Online (Sandbox Code Playgroud)
这显示了与 Matlab 类似的内容,但我不确定所有与使用 、 创建的辅助轴配合使用的代码plotyy
也能与以这种方式创建的轴配合使用。
我正在使用Recharts Library作为 ReactJS 中的图表。设置 Y 轴间隔时存在一个奇怪的问题。有几个可用的选项“preserveStart” | “保留结束”| “保留开始结束”| 数字。对我来说,这是行不通的。
我附上了几个屏幕来展示我的期望和我得到的东西。
注意:由于项目的保密性,我不允许将代码放在这里。如果需要更多信息,请告诉我。