我输入的数据格式如下.
x y z
0 2.2 4.5
5 3.8 6.8
10 4.6 9.3
15 7.6 10.5
Run Code Online (Sandbox Code Playgroud)
如何在R中绘制像excel(如下所示)的xy散点图?

我有想要用线图显示的数据(随时间变化的深度).为清楚起见,我想放大一个部分,但仍然向用户显示数据继续超出绘图范围.所以我希望线条停留在情节的边缘,而不是最后一点.这在基本图形中足够简单,但我无法在ggplot中使其工作.这是一个基础的例子:
d <- data.frame(x = 1:10, y = 1:10)
plot(d$x, d$y, xlim = c(2,9))
lines(d$x, d$y)
Run Code Online (Sandbox Code Playgroud)
与ggplot类似的方法不起作用; 线条停在最后一点.例:
d <- data.frame(x = 1:10, y = 1:10)
ggplot(d, aes(x, y)) + geom_point() + geom_line() + xlim(2,9)
Run Code Online (Sandbox Code Playgroud)
有没有办法让线条在ggplot中运行到情节的边缘?谢谢.
代替
基于以下 .csv 文件构建:
01-01-97 1
01-02-97 2
01-03-97 3
...
01-11-17 251
01-12-17 252
01-01-18 253
Run Code Online (Sandbox Code Playgroud)
我应该在此代码中更改什么以生成所需的图形?
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
# load csv
df=pd.read_csv("test.csv")
# generate graph
g = sns.lineplot(x="Date", y="Data", data=df)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我正在使用 seaborn lineplot ( https://seaborn.pydata.org/generated/seaborn.lineplot.html )绘制时间序列数据,并绘制中位数而不是平均值。示例代码:
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
fmri = sns.load_dataset("fmri")
ax = sns.lineplot(x="timepoint", y="signal", estimator = np.median, data=fmri)
Run Code Online (Sandbox Code Playgroud)
我希望误差带显示四分位距而不是置信区间。我知道我可以ci = "sd"用于标准偏差,但是有没有一种简单的方法来添加 IQR?我想不明白。
谢谢!
对于n对坐标x的列表,y是否有一种方法可以绘制特定颜色上不同点之间的直线?
我到目前为止所实现的解决方案是不使用情节功能,但行选择了我想要的颜色范围.这是一个例子:
x <- 1:100
y <- rnorm(100,1,100)
plot(x,y ,type='n')
lines(x[1:50],y[1:50], col='red')
lines(x[50:60],y[50:60], col='black')
lines(x[60:100],y[60:100], col='red')
Run Code Online (Sandbox Code Playgroud)
有更简单的方法吗?
我在下面为此做了一个快速示例数据框.基本上我想创建一个线图,其平均值为一条线,并且该线周围的阴影代表值的范围.我意识到我可能必须找到行最小值/最大值,但我不确定如何为行执行此操作,也不知道我将如何绘制此行
TEST <- data.frame(a=c(1,5,7,2), b=c(3,8,2,5), c=c(6,10,2,1))
TEST$mean <- rowMeans(TEST)
Run Code Online (Sandbox Code Playgroud)
任何帮助表示感谢 - 谢谢
使用ggplot2 R软件包,我创建了一条带有6条彩色线条的线条图(指的是6个级别的因子),我想用黑色和白色来改变它,制作3条黑色实线,虚线和虚线以及3个灰色实体,虚线和虚线.我尝试使用scale_linetype_manual()和scale_color_grey(),但我无法混合灰色和黑色虚线.
这里是scale灰色选项的代码:
ggplot() +
geom_line(data = f[!is.na(f$fr),], aes(x=date2, y=fr, colour=locality, group=locality),
size = 1.0) +
scale_color_grey(start = 0, end = 0.9, guide="legend", name="Locality",
labels=c("a","b","c","d","e","f")) +
xlab("") +
ylab("") +
theme_bw() +
theme(legend.position = "top", panel.background = element_rect(fill = "white"),
panel.grid.major = element_line(colour = "white"),
axis.text.x=element_text(angle=90,hjust=1,vjust=0.5)) +
facet_grid(.~year)
Run Code Online (Sandbox Code Playgroud)
虽然这是带有虚线的代码:
ggplot() +
geom_line(data = f[!is.na(f$fr),], aes(x=date2, y=fr, linetype=locality, group=locality),
size = 1.0) +
scale_linetype_manual(name="Locality",
values=c("solid", "dashed", "dotted", "dotdash", "longdash", "twodash"),
labels=c("a","b","c","d","e","f")) +
xlab("") +
ylab("") +
theme_bw()+
theme(legend.position = "top", panel.background …Run Code Online (Sandbox Code Playgroud) 我有以下数据框:
lp_dat <- structure(list(kmeans_cluster = c("1", "2", "3", "4", "1", "2",
"3", "4", "1", "2", "3", "4"), tc = structure(c(2L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L), .Label = c("NT", "IBD+PBS",
"IBD+Serpin"), class = "factor"), n = c(924, 1389, 0, 652, 924,
0, 0, 0, 110, 1389, 11851, 0)), row.names = c(NA, -12L), class = c("tbl_df",
"tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)
我想做的是使情节平滑。下面是我使用的代码:
lp <- ggplot(lp_dat, aes(x = tc, y = n, group = 1)) +
geom_point(color = "blue") + …Run Code Online (Sandbox Code Playgroud) 我有两组数据
int[] x1 = {1,2,3,4,5,6,7,8,9,10};
int[] y1 = {1,2,3,5,6,8,9,10,14,11};
int[] x2 = {1,2,3,4,5,6,7,8,9,10};
int[] y2 = {0,2,3,5,0,8,9,8,14,11};
int[] z2 = {1,2,3,1,2,3,1,2,3,1};
Run Code Online (Sandbox Code Playgroud)
我要绘制的x1,y1作为XYLineChart,然后绘制x2,y2上没有线同积分散.
我还需要每个散点都是xy,y2不同的颜色,具体取决于值z2 (1=Color.red, 2=Color.green, 3=Color.blue)
我怎样才能做到这一点?
到目前为止,我有:
JPanel panel_1 = new JPanel();
panel_1.setLayout(new BorderLayout(0, 0));
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series1 = new XYSeries("series1");
for(int i=0; i<x1.length; i++){
series1.add(x1[i],y1[i]);
}
dataset.add(series1);
JFreeChart chart = ChartFactory.createXYLineChart("Title", "x", "y", dataset, PlotOrientation.VERTICAL, false, false, false);
ChartPanel cp = new ChartPanel(chart);
panel_1.add(cp, BorderLayout.CENTER); …Run Code Online (Sandbox Code Playgroud) 是否可以用 绘制不同尺寸(即粗)的线条geom_line?
无论组如何,所有线的大小参数都相同:
bp <- ggplot(data=diamonds, aes(x=cut, y=depth)) +
geom_line(aes(color=cut), size=1)
Run Code Online (Sandbox Code Playgroud)
但是,我希望线条的粗细能够反映它们以观察数量衡量的相对重要性:
relative_size <- table(diamonds$cut)/nrow(diamonds)
bp <- ggplot(data=diamonds, aes(x=cut, y=depth)) +
geom_line(aes(color=cut), size=cut)
bp
# Error: Incompatible lengths for set aesthetics: size
Run Code Online (Sandbox Code Playgroud)
有趣的是,geom_line(..., size=cut)可以工作,但不符合预期,因为它根本不会改变线条大小。