lava / matplotlib-cpp

Extremely simple yet powerful header-only C++ plotting library built on the popular matplotlib
MIT License
4.28k stars 1.12k forks source link

The command like "subplot"doesn't work #310

Open Loong99 opened 2 years ago

Loong99 commented 2 years ago
plt::plot(t3, p3);
plt::subplot(2, 2, 1);
plt::title("p-t");
plt::xlabel("t/ms");
plt::ylabel("p/Mpa");

plt::plot(t3, p3);
plt::subplot(2, 2, 2);
plt::title("p-t");
plt::xlabel("t/ms");
plt::ylabel("p/Mpa");

plt::plot(t3, p3);
plt::subplot(2, 2, 3);
plt::title("p-t");
plt::xlabel("t/ms");
plt::ylabel("p/Mpa");

plt::plot(t3, p3);
plt::subplot(2, 2, 4);
plt::title("p-t");
plt::xlabel("t/ms");
plt::ylabel("p/Mpa");

It doesn't work well above, but work well below. plt::figure(1); plt::plot(t3, p3); plt::title("p-t"); plt::xlabel("t/ms"); plt::ylabel("p/Mpa"); plt::figure(2); plt::plot(l3, p3); plt::title("p-l"); plt::xlabel("l/dm"); plt::ylabel("p/Mpa"); plt::figure(3); plt::plot(t3, v3); plt::title("v-t"); plt::xlabel("t/ms"); plt::ylabel("v/(m/s)"); plt::figure(4); plt::plot(l3, v3); plt::title("v-l"); plt::xlabel("l/dm"); plt::ylabel("v/(m/s)"); plt::show();

ykachin commented 2 years ago

you can change the subplot function code:

PyTuple_SetItem(args, 0, PyLong_FromLong(nrows)); PyTuple_SetItem(args, 1, PyLong_FromLong(ncols)); PyTuple_SetItem(args, 2, PyLong_FromLong(plot_number));

eduardobehr commented 1 year ago

Too bad this repository isn't updated since 2021. @lava could you merge PR #333 to fix this issue?