MCPcopy Create free account
hub / github.com/buger/goterm / DrawAxes

Method DrawAxes

plot.go:84–144  ·  view source on GitHub ↗
(maxX, minX, maxY, minY float64, index int)

Source from the content-addressed store, hash-verified

82}
83
84func (c *LineChart) DrawAxes(maxX, minX, maxY, minY float64, index int) {
85 side := AXIS_LEFT
86
87 if c.Flags&DRAW_INDEPENDENT != 0 {
88 if index%2 == 0 {
89 side = AXIS_RIGHT
90 }
91
92 c.DrawLine(c.paddingX-1, 1, c.Width-c.paddingX, 1, "-")
93 } else {
94 c.DrawLine(c.paddingX-1, 1, c.Width-1, 1, "-")
95 }
96
97 if side == AXIS_LEFT {
98 c.DrawLine(c.paddingX-1, 1, c.paddingX-1, c.Height-1, "│")
99 } else {
100 c.DrawLine(c.Width-c.paddingX, 1, c.Width-c.paddingX, c.Height-1, "│")
101 }
102
103 left := 0
104 if side == AXIS_RIGHT {
105 left = c.Width - c.paddingX + 1
106 }
107
108 if c.Flags&DRAW_RELATIVE != 0 {
109 c.writeText(ff(minY), left, 1)
110 } else {
111 if minY > 0 {
112 c.writeText("0", left, 1)
113 } else {
114 c.writeText(ff(minY), left, 1)
115 }
116 }
117
118 c.writeText(ff(maxY), left, c.Height-1)
119
120 c.writeText(ff(minX), c.paddingX, 0)
121
122 x_col := c.data.columns[0]
123 c.writeText(c.data.columns[0], c.Width/2-utf8.RuneCountInString(x_col)/2, 1)
124
125 if c.Flags&DRAW_INDEPENDENT != 0 || len(c.data.columns) < 3 {
126 col := c.data.columns[index]
127
128 for idx, char := range strings.Split(col, "") {
129 start_from := c.Height/2 + len(col)/2 - idx
130
131 if side == AXIS_LEFT {
132 c.writeText(char, c.paddingX-1, start_from)
133 } else {
134 c.writeText(char, c.Width-c.paddingX, start_from)
135 }
136 }
137 }
138
139 if c.Flags&DRAW_INDEPENDENT != 0 {
140 c.writeText(ff(maxX), c.Width-c.paddingX-len(ff(maxX)), 0)
141 } else {

Callers 1

DrawMethod · 0.95

Calls 3

DrawLineMethod · 0.95
writeTextMethod · 0.95
ffFunction · 0.85

Tested by

no test coverage detected