Skip to content

Axis formatting by converting exponential numbers to normal numbers #304

Open

Description

@arunumd

I am trying to reproduce the original python matplotlib functionality of being able to display fixed offsets in x, y, and z values in the chart axes to whole numbers. This question on stackoverflow, very well explains what I intend to do.

I have some representative Python code which does the job for me in matplotlib (Python). The following is the code:

        fig = plt.figure()
        fig.set_size_inches(10, 10)
        ax = fig.add_subplot(projection='3d')
        axis_formatter = ScalarFormatter(useOffset=False)
        ax.scatter(self.x, self.y, self.z, marker='o')
        ax.yaxis.set_major_formatter(axis_formatter)
        ax.xaxis.set_major_formatter(axis_formatter)
        ax.zaxis.set_major_formatter(axis_formatter)

Are there equivalent methods in matplotlib-cpp to achieve this same functionality?

Activity

  1. lava commented on Nov 4, 2026

    @lava
    Owner

    Thanks for the detailed question! Controlling the offset and scientific notation fits the project. pyplot has ticklabel_format, which acts on the current axes (including the z axis of 3D plots), so a plt::ticklabel_format(const std::map<std::string, std::string>& keywords = {}) wrapper forwarding keywords such as axis, style and useOffset would cover this. A PR that follows the existing conventions (keywords forwarded as kwargs, throw on failure like title or xlabel) plus a small example would be welcome. Keyword values arrive in Python as strings, so useOffset needs to be converted to a real boolean rather than passed as "False". Until then, master already lets you switch the offset off globally: plt::rcparams({{"axes.formatter.useoffset", "False"}}); before plotting.


    🤖 This triage was made by the project's automated governance process. See the README for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions