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?
CodePudding user response:
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 "\033[3m" s "\033[0m"
feature = "adult_male"
hue = "alive"
print(f"countplot of {ital(feature)} by {ital(hue)}")
The above works.
def ital(s):
return "\033[3m" s "\033[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.