Skip to content

Cannot make Latex plots when Pandas dataframe has underscore in variable name #17774

Closed
@khof312

Description

@khof312

Bug report

Bug summary

When plotting a Pandas data frame with variables that have underscores in the name, I cannot use the usetex option without getting an error. Currently, the only solution I can find recommends that I rename the columns in my dataframe to escape special characters, but it seems like there must be a better approach.

Code for reproduction

import pandas as pd
import matplotlib
matplotlib.rcParams['text.usetex'] = True

df = pd.DataFrame([0,1,2], columns = ["test_column"])
df.plot()

Actual outcome

<matplotlib.axes._subplots.AxesSubplot at 0x22a107c4630>
---------------------------------------------------------------------------
...

RuntimeError: latex was not able to process the following string:
b'test_column'

...

! Missing $ inserted.
<inserted text> 
                $
l.14 ...size{10.000000}{12.500000}{\sffamily test_
                                                  column}
No pages of output.

...

Expected outcome
I think it would be good to create an option to easily prevent Latex from interpreting special characters when they appear in data frame column names.

Matplotlib version

  • Operating system: Windows 10
  • Matplotlib version: 3.1.3
  • Matplotlib backend (print(matplotlib.get_backend())): Qt5Agg
  • Python version: 3.6.8
  • Jupyter version: Jupyterlab 2.1.4
  • Other libraries: Pandas 1.0.1
  • Installed with Anaconda

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions