1c4762a1bSJed Brown static char help[] = "Makes a simple histogram.\n"; 2c4762a1bSJed Brown 3c4762a1bSJed Brown #include <petscsys.h> 4c4762a1bSJed Brown #include <petscdraw.h> 5c4762a1bSJed Brown 6d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv) 7d71ae5a4SJacob Faibussowitsch { 8c4762a1bSJed Brown PetscDraw draw; 9c4762a1bSJed Brown PetscDrawHG hist; 10c4762a1bSJed Brown PetscDrawAxis axis; 11c4762a1bSJed Brown int n = 20, i, x = 0, y = 0, width = 400, height = 300, bins = 8; 12c4762a1bSJed Brown PetscInt w = 400, h = 300, nn = 20, b = 8, c = PETSC_DRAW_GREEN; 13c4762a1bSJed Brown int color = PETSC_DRAW_GREEN; 14c4762a1bSJed Brown const char *xlabel, *ylabel, *toplabel; 15c4762a1bSJed Brown PetscReal xd; 16c4762a1bSJed Brown PetscBool flg; 17c4762a1bSJed Brown 189371c9d4SSatish Balay xlabel = "X-axis Label"; 199371c9d4SSatish Balay toplabel = "Top Label"; 209371c9d4SSatish Balay ylabel = "Y-axis Label"; 21c4762a1bSJed Brown 22327415f7SBarry Smith PetscFunctionBeginUser; 239566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 249566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-width", &w, NULL)); 259566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-height", &h, NULL)); 269566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &nn, NULL)); 279566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-bins", &b, NULL)); 289566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-color", &c, NULL)); 299566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-nolabels", &flg)); 30300f1712SStefano Zampini PetscCall(PetscCIntCast(w, &width)); 31300f1712SStefano Zampini PetscCall(PetscCIntCast(h, &height)); 32300f1712SStefano Zampini PetscCall(PetscCIntCast(nn, &n)); 33300f1712SStefano Zampini PetscCall(PetscCIntCast(b, &bins)); 34300f1712SStefano Zampini PetscCall(PetscCIntCast(c, &color)); 359371c9d4SSatish Balay if (flg) { 369371c9d4SSatish Balay xlabel = NULL; 379371c9d4SSatish Balay ylabel = NULL; 389371c9d4SSatish Balay toplabel = NULL; 399371c9d4SSatish Balay } 40c4762a1bSJed Brown 419566063dSJacob Faibussowitsch PetscCall(PetscDrawCreate(PETSC_COMM_WORLD, 0, "Title", x, y, width, height, &draw)); 429566063dSJacob Faibussowitsch PetscCall(PetscDrawSetFromOptions(draw)); 439566063dSJacob Faibussowitsch PetscCall(PetscDrawHGCreate(draw, bins, &hist)); 449566063dSJacob Faibussowitsch PetscCall(PetscDrawHGSetColor(hist, color)); 459566063dSJacob Faibussowitsch PetscCall(PetscDrawHGGetAxis(hist, &axis)); 469566063dSJacob Faibussowitsch PetscCall(PetscDrawAxisSetColors(axis, PETSC_DRAW_BLACK, PETSC_DRAW_RED, PETSC_DRAW_BLUE)); 479566063dSJacob Faibussowitsch PetscCall(PetscDrawAxisSetLabels(axis, toplabel, xlabel, ylabel)); 489566063dSJacob Faibussowitsch /* PetscCall(PetscDrawHGSetFromOptions(hist)); */ 49c4762a1bSJed Brown 50c4762a1bSJed Brown for (i = 0; i < n; i++) { 51c4762a1bSJed Brown xd = (PetscReal)(i - 5); 529566063dSJacob Faibussowitsch PetscCall(PetscDrawHGAddValue(hist, xd * xd)); 53c4762a1bSJed Brown } 549566063dSJacob Faibussowitsch PetscCall(PetscDrawHGDraw(hist)); 559566063dSJacob Faibussowitsch PetscCall(PetscDrawHGSave(hist)); 56c4762a1bSJed Brown 579566063dSJacob Faibussowitsch PetscCall(PetscDrawHGDestroy(&hist)); 589566063dSJacob Faibussowitsch PetscCall(PetscDrawDestroy(&draw)); 599566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 60b122ec5aSJacob Faibussowitsch return 0; 61c4762a1bSJed Brown } 62c4762a1bSJed Brown 63c4762a1bSJed Brown /*TEST 64c4762a1bSJed Brown 65c4762a1bSJed Brown build: 66c4762a1bSJed Brown requires: x 67c4762a1bSJed Brown 68c4762a1bSJed Brown test: 69*3886731fSPierre Jolivet output_file: output/empty.out 70c4762a1bSJed Brown 71c4762a1bSJed Brown TEST*/ 72