I would like to title a chart in seaborn as –
countplot of adult_male by alive
I found an old Jupyter Notebook document where someone used $
to wrap around the word to italicize. However, this does not work if there is an underscore. See the code below –
titanic = sns.load_dataset('titanic') feature = "adult_male" hue = "alive" ax = sns.countplot(data=titanic, x=feature); ax.set_title(f"countplot of ${feature}$ by ${hue}$");
How do I fix the title?
Advertisement
Answer
This works in a Jupyter Notebook document and a Python console.
import seaborn as sns import matplotlib.pyplot as plt sns.set(rc={"figure.dpi":300, 'savefig.dpi':300}) def esc(s): return s.replace("_", "_") titanic = sns.load_dataset('titanic') feature = "adult_male" hue = "alive" ax = sns.countplot(data=titanic, x=feature); ax.set_title(f"countplot of ${{{esc(feature)}}}$ by ${{{esc(hue)}}}$"); plt.show()
As Trenton kindly pointed out, using an ANSI escape code to italicize doesn’t work when plotting.
def ital(s): return "33[3m" + s + "33[0m" feature = "adult_male" hue = "alive" print(f"countplot of {ital(feature)} by {ital(hue)}")
The above works.
def ital(s): return "33[3m" + s + "33[0m" feature = "adult_male" hue = "alive" ax = sns.countplot(data=titanic, x=feature); ax.set_title(f"countplot of {ital(feature)} by {ital(hue)}");
This doesn’t.