Skip to content

Repository files navigation

ggplot

A R language ggplot2 package liked grammar of graphics library for R# language programming.

The R# language is another scientific computing language which is designed for .NET runtime, R# is evolved from the R language. There is a famous graphics library called ggplot2 in R language, so keeps the same, there is a graphics library called ggplot was developed for R# language.

usage

require(ggplot);
constvolcano= read.csv(`${@dir}/log2FC.csv`);
constfoldchange=1.5;
# create color factor for scatter pointsvolcano[, "factor"] = ifelse(volcano[, "log2FC"] > log2(foldchange), "Up", "Not Sig");
volcano[, "factor"] = ifelse(volcano[, "log2FC"] <-log2(foldchange), "Down", volcano[, "factor"]);
volcano[, "factor"] = ifelse(volcano[, "p.value"] <0.05, volcano[, "factor"], "Not Sig");
# transform of the pvalue scalevolcano[, "p.value"] =-log10(volcano[, "p.value"]);
print("peeks of the raw data:");
print(head(volcano));
print("count of the factors:");
print(`Up: ${sum("Up" == volcano[, "factor"])}`);
print(`Not Sig: ${sum("Not Sig" == volcano[, "factor"])}`);
print(`Down: ${sum("Down" == volcano[, "factor"])}`);
# [1] "peeks of the raw data:"# ID p.value log2FC factor# <mode> <string> <double> <double> <string># [1, ] "Q5XJ10" 9.81 -0.205 "Not Sig"# [2, ] "A8WG05" 5.21 0.0472 "Not Sig"# [3, ] "Q8JH71" 11.6 -0.38 "Not Sig"# [4, ] "Q7T3L3" 8.85 0.165 "Not Sig"# [5, ] "Q567C8" 21 0.837 "Up"# [6, ] "Q92005" 0.091 -0.00514 "Not Sig"## [1] "count of the factors:"# [1] "Up: 90"# [1] "Not Sig: 2643"# [1] "Down: 93"
bitmap(file=`${@dir}/volcano.png`, size= [3000, 3000]) {
# create ggplot layers and tweaks via ggplot style options
ggplot(volcano, aes(x="log2FC", y="p.value"), padding="padding:250px 500px 250px 300px;")
+ geom_point(aes(color="factor"), color="black", shape="circle", size=25)
+ scale_colour_manual(values=list(
Up="red",
"Not Sig"="gray",
Down="steelblue"
))
+ geom_text(aes(label="ID"), which=~(factor!="Not Sig") && (p.value>=15) )
+ geom_hline(yintercept=-log10(0.05), color="red", line.width=5, linetype="dash")
+ geom_vline(xintercept= log2(foldchange), color="red", line.width=5, linetype="dash")
+ geom_vline(xintercept=-log2(foldchange), color="red", line.width=5, linetype="dash")
+ labs(x="log2(FoldChange)", y="-log10(P-value)")
+ ggtitle("Volcano Plot (A vs B)")
+ scale_x_continuous(labels="F2")
+ scale_y_continuous(labels="F2")
;
}

Use ggplot as python module

importggplotx=seq(-5, 5, by=0.2)
y=sin(x)
input=data.frame(x=x, y=y)
defplotfile(filepath):
print("previews of the plot table:")
print(input, max.print=13)
plt=ggplot(input, aes(x="x", y="y"), padding="padding: 200px 500px 200px 200px;", width=2400, height=1600) plt=plt+geom_line(width=8, show.legend=TRUE, color="Jet")
bitmap(plt, file=filepath)
plotfile(`${@dir}/line_sin_py.png`)
# --=== Create Elegant Data Visualisations Using the Grammar of Graphics ===--# * *# * ggplot is an open-source data visualization *# * package for the statistical programming *# * language R#. *# * *# ----===== R# author: xieguigang <xie.guigang@gcmodeller.org> ======----# github: https://github.com/rsharp-lang/ggplot# [1] "previews of the plot table:"# x y# ---------------------------# <mode> <double> <double># [1, ] -5 0.958924# [2, ] -4.8 0.996165# [3, ] -4.6 0.993691# [4, ] -4.4 0.951602# [5, ] -4.2 0.871576# [6, ] -4 0.756802# [7, ] -3.8 0.611858# [8, ] -3.6 0.44252# [9, ] -3.4 0.255541# [10, ] -3.2 0.0583741# [11, ] -3 -0.14112# [12, ] -2.8 -0.334988# [13, ] -2.6 -0.515501# [ reached 'max' / getOption("max.print") -- omitted 37 rows ]

ggplot(groups, aes(x="tags", y="data", color="colors"), padding="padding: 250px 100px 250px 300px;")
+ geom_violin(width=1)
+ geom_jitter(width=0.3)
+ ggtitle(name)
+ ylab("Intensity")
+ xlab("")
+ scale_y_continuous(labels="G2")
+ theme(axis.text.x= element_text(angle=45))
;

ggplot(groups, aes(x="tags", y="data", color="colors"), padding="padding: 250px 100px 250px 300px;")
+ geom_boxplot(width=0.8)
+ geom_jitter(width=0.3)
+ ggtitle(name)
+ ylab("Intensity")
+ xlab("")
+ scale_y_continuous(labels="G2")
+ theme(axis.text.x= element_text(angle=45))
;

ggplot(groups, aes(x="tags", y="data", color="colors"), padding="padding: 250px 100px 250px 300px;")
+ geom_barplot(width=0.8)
+ geom_jitter(width=0.3)
+ ggtitle(name)
+ ylab("Intensity")
+ xlab("")
+ scale_y_continuous(labels="G2")
+ theme(axis.text.x= element_text(angle=45))
;

Plot 3d scatter

rendering a 3d chart in ggplot package is just simply enough as create a 2d chart plot. we just needs add a data mapping of the z axis at here!

# create ggplot layers and tweaks via ggplot style options
ggplot(data, aes(x="X", y="Y", z="Z"), padding="padding:250px 500px 100px 100px;")
# use scatter points for visual our data+ geom_point(aes(color="class"), color="paper", shape="triangle", size=20) + ggtitle("Scatter UMAP 3D")
# use the default white theme from ggplot+ theme_default()
# use a 3d camera to rotate the charting plot # and adjust view distance+ view_camera(angle= [31.5,65,125], fov=100000)
;

Theme in ggplot

just change the function theme_default to theme_black, then we can get a cool 3d scatter plot in black theme:

ggplot(data, aes(x="X", y="Y", z="Z"), padding="padding:250px 500px 100px 100px;")
+ geom_point(aes(color="class"), color="paper", shape="triangle", size=20) + ggtitle("Scatter UMAP 3D")
# use the black theme from ggplot package+ theme_black()
+ view_camera(angle= [31.5,65,125], fov=100000)
;

Vignettes

About

A R language ggplot2 package liked grammar of graphics library for R# language programming

Topics

Resources

Code of conduct

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages