Untitled
unknown
plain_text
a month ago
1.7 kB
1
Indexable
Never
import matplotlib.pyplot as plt # Create the figure and axis for the fishbone diagram fig, ax = plt.subplots(figsize=(10, 7)) # Main spine of the fishbone diagram ax.plot([0, 1], [0.5, 0.5], 'k-', lw=2) # Define the problem at the head of the fishbone ax.text(1, 0.5, 'Spotify Growth Challenges', fontsize=14, verticalalignment='center') # Categories (bones) categories = { 'Pricing': ['Successful price increases in mature markets', 'Challenges in free to paid conversion in developing markets'], 'Promotion': ['ROI issues in developing markets', 'Ineffective MAU growth in some regions'], 'Product': ['Expansion of audiobooks & podcasts enhanced value', 'Free-tier ad revenue volatility'], 'Market': ['High ROI in developed markets', 'Lower engagement in developing markets'], 'Monetization': ['Slow conversion in developing markets', 'Ad revenue growth slower than expected'], 'Engagement': ['Strong engagement in mature markets', 'Inconsistent engagement in developing markets'] } # Plot each category as bones coming off the main spine y_positions = [0.8, 0.7, 0.6, 0.5, 0.4, 0.3] for i, (category, causes) in enumerate(categories.items()): ax.plot([0, 0.5], [0.5, y_positions[i]], 'k-', lw=2) ax.text(-0.1, y_positions[i], category, fontsize=12, verticalalignment='center', horizontalalignment='right') # Plot the causes on each bone for j, cause in enumerate(causes): ax.text(0.25, y_positions[i] - 0.05 * (j+1), f'- {cause}', fontsize=10, verticalalignment='center') # Remove axes for a cleaner look ax.set_axis_off() # Display the diagram plt.title('Fishbone Diagram: Spotify Growth Challenges', fontsize=16) plt.show()
Leave a Comment