drexsien
drexsien

Reputation: 952

SVG Polyline make Y points larger

Is there anyway to make the Y points on SVG larger. My Y points are on decimal gap. When you look it on browser it will just look like a straight line.

<svg viewBox="0 0 500 100" class="chart">    
  <polyline fill="none" stroke="#0074d9" stroke-width="1"
      points="
        0,55.15
        110,55.43
        220,55.98
        330,56.01
        440,56.09
  "/>  
</svg>

Cheers!

1st Pic. Current when you run the svg in browser enter image description here

2nd Pic. What Im trying to achieve

enter image description here

Upvotes: 0

Views: 661

Answers (1)

Michael Mullany
Michael Mullany

Reputation: 31750

Well - here's a solution that assumes a few things:

  • You want the y coordinates in your SVG to match your original data. If you want this, then you have to flip your drawing surface afterwards, because the 0,0 origin in SVG is top, left, not bottom, left as in most charts.
  • You don't care about indicating absolute scale and just want to indicate relative changes no matter how minor, and you don't care about the relative scale of X and Y axis.

So, this adds a CSS transform that flips your line vertically, shrinks the viewBox so that the y axis is zoomed into the mid-fifties. And then squashes the resulting drawing into the drawing space by using preserveAspectRatio/meet (I didn't bother redoing your X axis, I just shrunk it to 10% by moving the decimal place.)

#tooltip-flip{
  background: #DDD;
  transform-origin: 50%, 50%;
  transform: scaleY(-1);
}
<svg id="tooltip-flip" viewBox="-0.25 54.7 4.8 1" width="500px" height="200px" preserveAspectRatio="xMinYMin meet">    
  <polyline fill="none" stroke="#0074d9" stroke-width="0.005"
      points="0,55.15 1.10,55.43 2.20,55.98 3.30,56.01 4.40,56.09"/>  
</svg>

Upvotes: 3

Related Questions