Untitled
unknown
plain_text
a year ago
1.7 kB
8
Indexable
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()
Editor is loading...
Leave a Comment