Default fonts in Seaborn statistical data visualization in iPython

前端 未结 2 1751
我在风中等你
我在风中等你 2021-02-08 07:38

After multiple problems trying to run stanford.edu/~mwaskom/software/seaborn/ in Anaconda and Enthought for Mac (many problems with dependencies and versions), I was able to run

相关标签:
2条回答
  • 2021-02-08 07:48

    As Joe notes, Arial isn't installed on Ubuntu by default, but it's easy to install. This is what I do for testing on Travis, which is an Ubuntu environment:

    sudo apt-get install msttcorefonts -qq
    

    Seaborn also exposes the font option at the top level of the style control, so you could also easily use one that's installed on your system. As far as I can tell from poking around, you can get a list of possible fonts this way:

    import matplotlib as mpl
    font_paths = mpl.font_manager.findSystemFonts()
    font_objects = mpl.font_manager.createFontList(font_paths)
    font_names = [f.name for f in font_objects]
    print font_names
    

    Once you've found one you want to use, just set it by doing, e.g.,

    sns.set(font="Verdana")
    

    Of course this would have to be done at the top of every script/notebook that's going to generate seaborn plots (which is annoying), so improving the use of non-default styles is on the roadmap for 0.3.

    0 讨论(0)
  • 2021-02-08 08:03

    Well, if you want to use Arial, you'll need to install the Microsoft core fonts. If I recall correctly, Arial can't be freely redistributed under the same terms as most OSS, so you'll need to agree to the license agreement and install it yourself.

    However, in more general terms, you just want to tweak the rc parameters. (Which can be done either at runtime through matplotlib.rc/matplotlib.rcParams or through a .matplotlibrc file.)

    For example, seaborn is basically doing this (among other things):

    import matplotlib as mpl
    mpl.rcParams['font.family'] = 'Arial'
    

    The error is because you don't have the Arial font installed anywhere on your system.

    You usually don't want to touch the font manager directly. There are plenty of exceptions, (e.g. using a specific .ttf file) but generally speaking, you'll want to stick to using the fonts installed on your system. You may want to specify a FontProperties instance, but even for that, it's usually easier to specify things through other keyword arguments.

    0 讨论(0)
提交回复
热议问题