gpt4 book ai didi

plot - Julia - 散点图 : how do I define different colors for each class?

转载 作者:行者123 更新时间:2023-12-03 20:33:41 25 4
gpt4 key购买 nike

我正在尝试在 Julia 中制作散点图,在那里我有 3 个类(class)。
我想为每个类定义不同的颜色。

我试过:

using(PyPlot)
pca = readdlm("pca1_2_fam.txt", header=false);
plot(pca[:,3], pca[:,4], color = pca[:,1])

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")

我想学习如何在 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.

enter image description here

注释:

您需要已经安装 python 和 matplotlib 才能使其正常工作。一个体面但绝不是唯一的方法是安装 Anaconda ( https://www.continuum.io/downloads )

您可以通过常规 J​​ulia 界面获得有关此处使用的所有功能的帮助,例如 ?scatter为您提供了许多配置绘图的选项。

您可以找到 PyPlot 文档 here和一堆例子 here (注意,每个示例都有一个链接,可以在 github 上或通过 IJulia 显示完整代码)。

您还可以查阅完整的 Matplotlib 文档 here .特别是 beginner's guideexamples将有助于为您提供想法。您有时需要做一些工作才能将这些转换为 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")

关于plot - Julia - 散点图 : how do I define different colors for each class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com