Automatic generate 3D pie Graph


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Automatic generate 3D pie Graph
# 1  
Old 03-20-2011
Automatic generate 3D pie Graph

Hello all,

I need the scripts automatic generate 3D pie Graph. What I have now is as below:

Run at terminal by $ CMD R BATCH graph.R
# 3D Exploded Pie Chart
library(plotrix)
slices <- c(20, 15, 4, 15, 8)
lbls <- c("Media", "Document", "DB", "Others", "Available")
pct <- round(slices/sum(slices)*100)
lbls <- paste(lbls, pct) # add percents to labels
lbls <- paste(lbls,"%",sep="") # ad % to labels
pie3D(slices,labels=lbls,explode=0.1,
main="Storage Profiler ")
But the problem is I need to key in manually in this scripts. For example at:

slices <- c(20, 15, 4, 15, 8)
lbls <- c("Media", "Document", "DB", "Others", "Available")
How about this scripts will read the data from *.csv file

Sample of CSV:

Media,20
Document,15
DB,4
Others,15
Available,8

Last edited by sheikh76; 03-20-2011 at 01:50 PM.. Reason: Forget to do code
# 2  
Old 03-20-2011
Code:
#!/bin/bash
Val=
Name=
while IFS="," read name val
do
        if [ -z "$Name" ];
        then
                Name=\""$name"\"
        else
                Name=$Name,\""$name"\"
        fi
        if [ -z "$Val" ];
        then
                Val=$val
        else
                Val="$Val, $val"
        fi
done < $1

echo "# 3D Exploded Pie Chart
library(plotrix)
slices <- c($Val)
lbls <- c($Name)
pct <- round(slices/sum(slices)*100)
lbls <- paste(lbls, pct) # add percents to labels
lbls <- paste(lbls,\"%\",sep=\"\") # ad % to labels
pie3D(slices,labels=lbls,explode=0.1,
main=\"Storage Profiler \")"

Code:
# /temp/script file.cvs
# 3D Exploded Pie Chart
library(plotrix)
slices <- c(20, 15, 4, 15, 8)
lbls <- c("Media","Document","DB","Others","Available")
pct <- round(slices/sum(slices)*100)
lbls <- paste(lbls, pct) # add percents to labels
lbls <- paste(lbls,"%",sep="") # ad % to labels
pie3D(slices,labels=lbls,explode=0.1,
main="Storage Profiler ")

This User Gave Thanks to danmero For This Post:
# 3  
Old 03-20-2011
Thanks Sir. But how to run? How about if I have data from CSV or txt.

Code:
Sample:
Media,20
Document,15
DB,4
Others,15
Available,8

Because I need this scripts will get from this data CSV or txt.

Last edited by sheikh76; 03-20-2011 at 02:24 PM.. Reason: Try do CODE
# 4  
Old 03-21-2011
Just save output of script to a file and then call rscript.exe to produce your pdf.

e.g. in cygwin under windows, you would:

Code:
... ( rest of script here )...
pie3D(slices,labels=lbls,explode=0.1
main=\"Storage Profiler \")" > disk.r
/cygdrive/c/Program\ Files/R/R-2.12.2/bin/rscript.exe disk.r

# 5  
Old 07-27-2011
How will this code take the csv file or text file as input? can someone help
# 6  
Old 07-27-2011
First I'll show you the whole script:

Code:
#!/bin/bash
Val=
Name=
while IFS="," read name val
do
        if [ -z "$Name" ];
        then
                Name=\""$name"\"
        else
                Name=$Name,\""$name"\"
        fi
        if [ -z "$Val" ];
        then
                Val=$val
        else
                Val="$Val, $val"
        fi
done < $1

echo "# 3D Exploded Pie Chart
library(plotrix)
slices <- c($Val)
lbls <- c($Name)
pct <- round(slices/sum(slices)*100)
lbls <- paste(lbls, pct) # add percents to labels
lbls <- paste(lbls,\"%\",sep=\"\") # ad % to labels
pie3D(slices,labels=lbls,explode=0.1,
main=\"Storage Profiler \")" > disk.r
/cygdrive/c/Program\ Files/R/R-2.12.2/bin/rscript.exe disk.r

Note the green text above needs to point to your rscript program, this example is for cygwin (Version 2.12.2 of r). If your path is setup to contain the r binary dir you simply replace with rscript.

Now, if you save this script as buildgraph.sh and make is executable (chmod +x buildgraph.sh) you could call it like this:
Code:
$ buildgraph.sh mydoc.csv

Login or Register to Ask a Question

Previous Thread | Next Thread

3 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Display Pie Chart/Bar Graph in microsoft outlook email using UNIX commands/Shell scripts

I have a shell script which executes to write html codes into a text file. My next step is to email the text file so that receiving person (people who i send email to) should be able to see pie/chart or bar graph (whatever i design in my code) in their email. Following is the example of a sample... (7 Replies)
Discussion started by: bikerboy
7 Replies

2. UNIX for Advanced & Expert Users

How to generate graph in unix?

Hi Friends, I need to generate a graph in on the basis of data available in csv file in unix. Please let me know how to generate the graph. Thanks Mayank (4 Replies)
Discussion started by: mayank2211
4 Replies

3. Solaris

How to generate graph from flat file by using unix script

Hi, I need to generate graph from the text file in Unix server. The file contains the following data, Fri Feb 03 07:01:00 PST 2012|3325 Fri Feb 03 07:02:00 PST 2012|3349 Fri Feb 03 07:03:00 PST 2012|3290 Fri Feb 03 07:04:00 PST 2012|3496 Fri Feb 03 07:05:00 PST 2012|3362 Fri Feb 03 07:06:00... (2 Replies)
Discussion started by: gkn
2 Replies
Login or Register to Ask a Question