I found a suggestion to use ticker.PercentFormatter. This changed the decimal numbers on the y-axis to percentages like I want, but the style formatting (grid, background, etc.) is lost, and the legend is pushed outside the plot area and cropped out.
Why does the plot change, and how do I fix the script so the plot retains my legend and styling?
import seaborn as sns
import seaborn.objects as so
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
market_data = {
'Year': ['2001','2001','2002', '2002', '2003', '2003'],
'Company': ['Shony','Ponysonic','Shony','Ponysonic','Shony','Ponysonic'],
'Market Share': [0.15, 0.35, 0.25, 0.4, 0.2, 0.45]
}
market_chart = (
so.Plot(data=market_data, x="Year", y="Market Share",color="Company")
.add(so.Area(), so.Stack())
)
market_chart.show() # looks good, but y-axis not in percent format
fig, ax = plt.subplots()
market_chart.on(ax).plot()
ax.yaxis.set_major_formatter(ticker.PercentFormatter(1))
plt.show() # display with percent y-axis. Lost theme styling.

