我目前有一个nx3矩阵阵列.我想将三列绘制为三个轴.我怎样才能做到这一点?
我用google搜索,人们建议使用Matlab,但我真的很难理解它.我还需要它是散点图.
有人可以教我吗?
在ggplot2,可以轻松地将图形保存到R对象中.
p = ggplot(...) + geom_point() # does not display the graph
p # displays the graph
Run Code Online (Sandbox Code Playgroud)
标准函数plot将图形作为void函数生成并返回NULL.
p = plot(1:10) # displays the graph
p # NULL
Run Code Online (Sandbox Code Playgroud)
是否可以保存plot在对象中创建的图形?
我正在运行Mac OSX 10.5.8.我使用macports安装了matplotlib.我从matplotlib库中得到了一些像这样的例子,没有修改:
http://matplotlib.sourceforge.net/examples/api/unicode_minus.html
我运行它,没有错误,但图片没有出现.在Linux Ubuntu中我得到它.
你知道这里有什么不对吗?
谢谢
我正在使用Windows 7 64位.每次,我都在使用绘图功能,绘图窗口会成功显示和绘制,但之后它会停止响应并且必须关闭它.
例如 :
x = linspace(0,1,10)
y = x.^2
plot(x,y);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当情节窗口冻结并且我必须关闭八度窗口时,它们也会没有响应.如果我不使用绘图功能,这将不会发生.
我不知道为什么.是因为我使用的是64位版本吗?请告诉我如何解决这个问题.
我想生成一个具有base和ggplot图形组合的图形.以下代码使用R的基本绘图函数显示我的图:
t <- c(1:(24*14))
P <- 24
A <- 10
y <- A*sin(2*pi*t/P)+20
par(mfrow=c(2,2))
plot(y,type = "l",xlab = "Time (hours)",ylab = "Amplitude",main = "Time series")
acf(y,main = "Autocorrelation",xlab = "Lag (hours)", ylab = "ACF")
spectrum(y,method = "ar",main = "Spectral density function",
xlab = "Frequency (cycles per hour)",ylab = "Spectrum")
require(biwavelet)
t1 <- cbind(t, y)
wt.t1=wt(t1)
plot(wt.t1, plot.cb=FALSE, plot.phase=FALSE,main = "Continuous wavelet transform",
ylab = "Period (hours)",xlab = "Time (hours)")
Run Code Online (Sandbox Code Playgroud)
哪个生成

这些面板中的大多数看起来足以让我包含在我的报告中.但是,需要改进显示自相关的图.使用ggplot看起来好多了:
require(ggplot2)
acz <- acf(y, plot=F)
acd <- data.frame(lag=acz$lag, acf=acz$acf) …Run Code Online (Sandbox Code Playgroud) 数据框有n列,我想得到n个图,每列一个图.
我是新手,我不会说R,无论如何我找到了两个解决方案.
第一个工作,但它不打印列名称(我需要它们!):
data <- read.csv("sample.csv",header=T,sep=",")
for ( c in data ) plot( c, type="l" )
Run Code Online (Sandbox Code Playgroud)
第二个更好用,因为它打印列名:
data <- read.csv("sample.csv",header=T,sep=",")
for ( i in seq(1,length( data ),1) ) plot(data[,i],ylab=names(data[i]),type="l")
Run Code Online (Sandbox Code Playgroud)
是否有更好的(从R语言的角度来看)解决方案?
我正在用ggplot2绘制线条,如下所示:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw()
Run Code Online (Sandbox Code Playgroud)
.
我发现传奇标记很小,所以我希望它们更大.如果我改变大小,情节上的线条也会改变:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
.
但是我只想在图例中看到粗线,我希望图上的线条很薄.我尝试使用,legend.key.size但它改变了标记的正方形,而不是线条的宽度:
library(grid) # for unit
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw() + theme(legend.key.size=unit(1,"cm"))
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用积分:
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
但当然它仍会影响情节和传奇:

我想使用线条和图例的点/点.
所以我要问两件事:
使用Python中matplotlib的pandas数据框制作一系列散点图的最佳方法是什么?
例如,如果我有一个df感兴趣的列的数据框,我发现自己通常将所有内容转换为数组:
import matplotlib.pylab as plt
# df is a DataFrame: fetch col1 and col2
# and drop na rows if any of the columns are NA
mydata = df[["col1", "col2"]].dropna(how="any")
# Now plot with matplotlib
vals = mydata.values
plt.scatter(vals[:, 0], vals[:, 1])
Run Code Online (Sandbox Code Playgroud)
在绘图之前将所有内容转换为数组的问题在于它会迫使您突破数据帧.
考虑这两个用例,其中具有完整的数据帧对于绘图是必不可少的:
例如,如果您现在想要查看在col3调用中绘制的相应值的所有值,并使用该值为scatter每个点(或大小)着色,该怎么办?你必须回去,拿出非na值col1,col2并检查它们的相应值.
有没有办法在保留数据帧的同时进行绘图?例如:
mydata = df.dropna(how="any", subset=["col1", "col2"])
# plot a scatter of col1 by col2, with sizes according to col3
scatter(mydata(["col1", "col2"]), s=mydata["col3"]) …Run Code Online (Sandbox Code Playgroud)我将数据保存为.csv12列的文件.第2至11列(标记为F1, F2, ..., F11)features.Column one包含或label这些功能.goodbad
我想绘制boxplot的所有这些功能11对label,而是通过单独good或bad.到目前为止我的代码是:
qplot(Label, F1, data=testData, geom = "boxplot", fill=Label,
binwidth=0.5, main="Test") + xlab("Label") + ylab("Features")
Run Code Online (Sandbox Code Playgroud)
然而,这只能说明F1反对label.
我的问题是:如何显示F2, F3, ..., F11对label在一个图表一些dodge position?我已将这些特征标准化,因此它们在[0 1]范围内具有相同的比例.
测试数据可以在这里找到.我手工绘制了一些东西来解释这个问题(见下文).

我查看了在交互式窗口中绘制函数(或其他类型的图形)的不同选项.我主要使用wxWidgets,但我会对任何其他"接口"开放.
wxPlot:自2006年以来没有更新.但如果它是......那将是一个很好的候选人.
wxMathPlot:很新,不成熟,功能很少(仍然有效?)
libgraph:过时,不反弹,仅2D,仅输出图像.
koolplot:太基本了,无法控制创建的窗口.
EasyBMP:非常基本,只有图像输出.
plotutils:仅限命令行.
plplot:C和C++ API几乎没有维护.事实上,wxPlot就是基于此.如果我们更新了C和C++接口,也可能成为候选者.
任何意见?想法?
谢谢!