god*_*nes 5 plot scatter-plot julia
我正在尝试在 Julia 中绘制散点图,我在那里有 3 个课程。
我想为每个类定义不同的颜色。
我试过:
using(PyPlot)
pca = readdlm("pca1_2_fam.txt", header=false);
plot(pca[:,3], pca[:,4], color = pca[:,1])
Run Code Online (Sandbox Code Playgroud)
pca 文件如下:
名称1 208094 -0.00476681 0.00822032
名称1 514876 -0.00531507 -0.00721858
名称2 515043 0.00365503 -0.01794700 名称2
515066 0.00467896 0.00420396名称3
799073 0.00811660 -0.01903420 名称3 GLTGH40
0.00380041 0.00618471
在 R 中,我只是使用以下方法做到了这一点:
colnames(pca)=c("Breed","Animal","PCA1","PCA2")
qplot(PCA1,PCA2,data=pca,color=Breed,geom=c("point")) + theme(legend.position="none")
Run Code Online (Sandbox Code Playgroud)
我想学习如何在 Julia 中做到这一点。
我发现 PyPlot 总体来说是在 Julia 中绘图的最佳选择,尽管还有许多其他软件包(Winston、Gadfly、Plotly 等)。PyPlot 本质上是 Python 库 Matplotlib 的包装器,它本身大致寻求模拟 Matlab 中可用的绘图,但从更“Pythonic”的角度来看。
这是一个应该可以实现您所寻求的示例:
using PyPlot
(X1, Y1) = (rand(6), rand(6));
(X2, Y2) = (rand(6), rand(6));
(X3, Y3) = (rand(6), rand(6));
fig = figure(figsize=(10,10))
# xlabel("My X Label") # optional x label
# ylabel("My Y Label") # optional y label
title("Julia Plots Like a Boss")
R = scatter(X1,Y1,color="red", label = "Red Data", s = 40)
G = scatter(X2,Y2,color="blue", label = "Blue Data", s = 60)
B = scatter(X3,Y3,color="green", label = "Green Data", s = 80)
legend(loc="right")
savefig("/path/to/pca1_2_fam.pdf") ## optional command to save results.
Run Code Online (Sandbox Code Playgroud)
评论:
您需要安装 python 和 matplotlib 才能使其工作。一个不错但绝不是唯一的方法是安装 Anaconda ( https://www.continuum.io/downloads )
您可以通过常规 Julia 界面获得有关此处使用的所有功能的帮助,例如为?scatter您提供许多配置绘图的选项。
您可以在此处找到 PyPlot 文档,并在此处找到大量示例 (请注意,每个示例都有一个链接,可在 github 上或通过 IJulia 显示完整代码)。
您还可以在此处查阅完整的 Matplotlib 文档。特别是,初学者指南和示例将有助于为您提供想法。有时您需要做一些工作才能将这些内容转换为 Julia,但希望我上面提到的其他特定于 Julia 的资源能够为此提供所需的指导。
更新:
正如 GersonOliveiraJunior 在评论中建议的那样,如果您想通过首先从文件中读取数据来执行此操作,您可以使用如下内容:
using DataFrames, PyPlot
pca2 = readtable("path/to/pca1_2_fam.txt", header=false, separator = ' ')
G = pca2[pca2[:,1].=="Name1",3:4]
R = pca2[pca2[:,1].=="Name2",3:4]
B = pca2[pca2[:,1].=="Name3",3:4]
fig = figure(figsize=(10,10))
title("Julia Plots Like a Boss")
scatter(G[:,1],G[:,2],color="green", label = "Green Data", s = 40)
scatter(R[:,1],R[:,2],color="red", label = "Red Data", s = 40)
scatter(B[:,1],B[:,2],color="blue", label = "Blue Data", s = 40)
legend(loc="right")
Run Code Online (Sandbox Code Playgroud)