Commit 83975b8f authored by Paul Asmuth's avatar Paul Asmuth
Browse files

add more marker shapes

parent e2e46435
Loading
Loading
Loading
Loading
+51 −3
Original line number Diff line number Diff line
@@ -18,8 +18,56 @@
namespace fviz {

const std::unordered_map<std::string, std::string> UNICODE_MARKERS = {
  {"circle-bullet", "◉"},
  {"circle-left", "◐"},
  {"circle-right", "◑"},
  {"circle-top", "◓"},
  {"circle-bottom", "◒"},
  {"circle-bullet-alt", "⭗"},
  {"circle-hatch", "◍"},
  {"circle-dashed", "◌"},
  {"diamond", "◆"},
  {"diamond-o", "◇"},
  {"diamond-bullet", "◈"},
  {"diamond-left", "⬖"},
  {"diamond-right", "⬗"},
  {"diamond-top", "⬘"},
  {"diamond-bottom", "⬙"},
  {"square", "■"},
  {"square-o", "□"},
  {"square-left", "◧"},
  {"square-right", "◨"},
  {"square-top", "⬒"},
  {"square-bottom", "⬓"},
  {"square-diag-left", "◩"},
  {"square-diag-right", "◪"},
  {"square-dotted", "⬚"},
  {"square-crosshair", "⯐"},
  {"square-bullet", "▣"},
  {"square-hatch-horiz", "▤"},
  {"square-hatch-vert", "▥"},
  {"square-hatch-cross", "▦"},
  {"square-hatch-diag-left", "▧"},
  {"square-hatch-diag-right", "▨"},
  {"hexagon", "⬢"},
  {"hexagon-o", "⬡"},
  {"pentagon", "⬟"},
  {"pentagon-o", "⬠"},
  {"compass-left", "⮘"},
  {"compass-right", "⮚"},
  {"compass-top", "⮙"},
  {"compass-bottom", "⮛"},
  {"triangle-left", "⯇"},
  {"triangle-right", "⯈"},
  {"triangle-top", "⯅"},
  {"triangle-bottom", "⯆"},
  {"triangle-left-o", "△"},
  {"triangle-right-o", "▷"},
  {"triangle-top-o", "△"},
  {"triangle-left-half", "◭"},
  {"triangle-right-half", "◮"},
  {"triangle-bottom-o", "▽"},
  {"triangle-dot", "◬"},
};

Marker marker_create_circle(double border_width) {
@@ -58,7 +106,7 @@ Marker marker_create_unicode(const std::string& u) {
    TextStyle style;
    style.font = target->font;
    style.color = color;
    style.font_size = size;
    style.font_size = from_unit(double(size) * 1.2);

    auto ax = HAlign::CENTER;
    auto ay = VAlign::CENTER;
@@ -83,12 +131,12 @@ ReturnCode marker_configure(

  expr = expr_get_list(expr);

  if (expr_is_value(expr, "disk")) {
  if (expr_is_value(expr, "circle")) {
    *marker = marker_create_disk();
    return OK;
  }

  if (expr_is_value(expr, "circle")) {
  if (expr_is_value(expr, "circle-o")) {
    double border_width = 0.2;
    if (expr_next(expr)) {
      if (auto rc = expr_to_float64(expr_next(expr), &border_width); !rc) {
+12 −4
Original line number Diff line number Diff line
@@ -4,17 +4,25 @@
    axes (none)
    limit-x (0 7)
    limit-y (0 2)
    data-x (0 1 2 3)
    data-y (0 0 0 0)
    data-x (0 1 2 3 4 5 6 7)
    data-y (0 0 0 0 0 0 0 0)
    scale-y (invert)
    marker-shapes (
        (circle)
        (disk)
        (circle-o)
        (square)
        (square-o)
        (square-left)
        (square-right)
        (hexagon)
        (hexagon-o))
    labels (
        "circle"
        "disk"
        "circle-o"
        "square"
        "square-o"
        "square-left"
        "square-right"
        "hexagon"
        "hexagon-o")
    marker-size (16px))
+15 −7
Original line number Diff line number Diff line
<svg xmlns="http://www.w3.org/2000/svg" width="900.000000" height="480.000000" viewBox="0 0 900 480">
  <rect width="900.000000" height="480.000000" fill="#ffffff"/>
  <path stroke-width="1.600000" stroke="#000000" fill="none" d="M47.1111 39.1111 M31.1111 39.1111 a8 8 0 1 0 16 0 a8 8 0 1 0 -16 0 "/>
  <path fill="#000000" d="M164.508 39.1111 M148.508 39.1111 a8 8 0 1 0 16 0 a8 8 0 1 0 -16 0 "/>
  <text x="267.904762" y="44.611111" fill="#000000" font-size="16.000000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="385.301587" y="44.611111" fill="#000000" font-size="16.000000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <path fill="#000000" d="M47.1111 39.1111 M31.1111 39.1111 a8 8 0 1 0 16 0 a8 8 0 1 0 -16 0 "/>
  <path stroke-width="1.600000" stroke="#000000" fill="none" d="M164.508 39.1111 M148.508 39.1111 a8 8 0 1 0 16 0 a8 8 0 1 0 -16 0 "/>
  <text x="268.107887" y="45.611111" fill="#000000" font-size="19.200000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="385.504712" y="45.611111" fill="#000000" font-size="19.200000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="501.503100" y="45.611111" fill="#000000" font-size="19.200000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="618.899926" y="45.611111" fill="#000000" font-size="19.200000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="736.296751" y="45.611111" fill="#000000" font-size="19.200000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="853.693576" y="45.611111" fill="#000000" font-size="19.200000" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif"></text>
  <text x="21.978299" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">circle</text>
  <text x="143.453249" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">disk</text>
  <text x="245.764137" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">hexagon</text>
  <text x="356.637525" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">hexagon-o</text>
  <text x="132.851687" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">circle-o</text>
  <text x="251.475074" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">square</text>
  <text x="362.348462" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">square-o</text>
  <text x="474.034350" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">square-left</text>
  <text x="586.946801" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">square-right</text>
  <text x="715.351438" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">hexagon</text>
  <text x="826.224826" y="21.244444" fill="#000000" font-size="14.666667" font-family="Arial,Helvetica,'Helvetica Neue',sans-serif">hexagon-o</text>
</svg>
 No newline at end of file
+218 −2
Original line number Diff line number Diff line
@@ -40,12 +40,76 @@ List of standard markers
  <tr>
    <td>
      <div class='picto'></div>
      <code>disk</code>
      <code>circle</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>circle</code>
      <code>circle-o</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-o</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>circle-bullet</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>diamond</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>diamond-o</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>diamond-bullet</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>diamond-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>diamond-right</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>diamond-top</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>diamond-bottom</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>compass-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>compass-right</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>compass-top</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>compass-bottom</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>hexagon</code>
@@ -54,5 +118,157 @@ List of standard markers
      <div class='picto'></div>
      <code>hexagon-o</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>pentagon</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>pentagon-o</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>square-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-right</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-top</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-bottom</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>square-diag-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-diag-right</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-dotted</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-crosshair</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>triangle-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-right</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-top</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-bottom</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>circle-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>circle-right</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>circle-top</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>circle-bottom</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>triangle-left-o</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-right-o</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-top-o</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-bottom-o</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>square-bullet</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-hatch-horiz</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-hatch-vert</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-hatch-cross</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>triangle-left-half</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-right-half</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-hatch-diag-left</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>square-hatch-diag-right</code>
    </td>
  </tr>
  <tr>
    <td>
      <div class='picto'></div>
      <code>circle-bullet-alt</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>circle-hatch</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>circle-dashed</code>
    </td>
    <td>
      <div class='picto'></div>
      <code>triangle-dot</code>
    </td>
  </tr>
</table>
+1 −1
Original line number Diff line number Diff line
@@ -4,4 +4,4 @@
    scale-x-padding 10
    scale-y-padding 20
    marker-sizes (csv tests/testdata/point_example.csv z)
    marker-shape (circle))
    marker-shape (circle-o))
Loading