【Python】matplotlibとseabornでハマった話【覚書】

【Python】matplotlibとseabornでハマった話【覚書】

はじめに

コジマです。

1ヶ月以上空いてしまった。

仕事が忙しくてヘトヘトでした。。。

仕事でやっとPythonを触ることができて楽しいです。
それなりに忙しいけど。

久しぶりなのでさっくり書きます。

今日はタイトルにある通りmatplotlibとseabornでハマった話。

何がしたかったかというと、
グラフAとグラフBを描画する時に、グラフAはseabornを適用し、グラフBにはseabornを適用しないようにしたかったのです。

しかし、どうしてもグラフBにもseabornのスタイルが当たってグラフの背景が灰色になってしまいました。

試したこと

試してもダメだったことは以下。

  • axesにfacecolorを指定(変わらず)
  • seabornのテーマをwhitecolorに設定(変わらず)
  • seabornのimportをやめる(もちろんグラフAにもseaborn適用されず)

解決

これをやって解決しました。

  • seabornのバージョンを0.8.0にした。
  • seabornを適用したい範囲でsns.set()をした。

私の環境でseabornのバージョンが0.7.2で、0.8.0より古かったのが原因でした。

公式サイトには以下のように書いてあります。

The default style is no longer applied when seaborn is imported. It is now necessary to explicitly call set() or one or more of set_style(), set_context(), and set_palette().


What’s new in each version(seaborn公式サイトの変更履歴)
より引用

日本語(ざっくり訳)するとこう書いてあります。
seabornをimportしただけじゃデフォルトのスタイルを適用しないよ。明示的にset()や(以下略)を呼び出す必要があるよ。

seabornのスタイルを適用したいタイミングでset()を呼び出せば使い分けることができるようになるんですね!
0.8.0未満だとそれができないのでこれから気をつけます。

さいごに

久しぶりに書けた〜〜〜。

今の会社にブログやってる人がいて、その人がとてもエンジニアを楽しんでいる人なので
触発されました。

その人がいなければ忙しいを理由にこれからもずるずる先延ばしにしていたかもしれないです。

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

Python、機械学習をもっと学びたいという人のためにおすすめのUdemy講座を紹介いたします!

Pythonの基本文法を押さえたい方はこちらの動画がおすすめです。
エンジニアになりたいと思って駆け出した方がPythonを選んだときはこの講座から始めるとよいと思います。
Python 3 エンジニア認定基礎試験の対策にもなります。
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス

プログラムの基礎が分かる方で機械学習に興味がある方はこちらがおすすめです。
SIGNATEという日本版Kaggleのサービスを実際に使用してハンズオン形式でデータ分析・機械学習を学ぶことができます。
もちろんこの動画だけで特級のデータサイエンティストになれるわけではないですが、機械学習の門を叩くにはとても良い講座だと思います。
【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

Pythonのライブラリで必ず押さえておきたいのがNumpy, Pandas, Matplotlibの3つ。
この3つを網羅的に学ぶことができる講座です。
英語の講座ですが、わかりやすい英語ですし、ソースコードメインで解説しているので
ソースコードを一緒に手を動かしながら学べば十分理解することができます。
機械学習を使わない人にもおすすめの講座です。
2021 NumPy, Pandas and Matplotlib A-Z™: for Machine Learning

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


Pythonカテゴリの最新記事