import pandas as pdimport numpy as npnp.random.seed(42)categories = ['Electronics', 'Clothing', 'Home', 'Books', 'Sports', 'Food']q1_sales = np.random.randint(100, 1000, len(categories))q2_sales = q1_sales + np.random.randint(-200, 400, len(categories))data = pd.DataFrame({'Category': categories, 'Q1_Sales': q1_sales, 'Q2_Sales': q2_sales})
import pandas as pd import numpy as np import matplotlib.pyplot as plt np.random.seed(42) categories = ['Electronics', 'Clothing', 'Home', 'Books', 'Sports', 'Food'] q1_sales = np.random.randint(100, 1000, len(categories)) q2_sales = q1_sales + np.random.randint(-200, 400, len(categories))data = pd.DataFrame({'Category': categories, 'Q1_Sales': q1_sales, 'Q2_Sales': q2_sales}) fig, ax = plt.subplots(figsize=(10, 6)) y_positions = range(len(categories)) # Plot lines connecting Q1 and Q2 sales [plt.plot([row.Q1_Sales, row.Q2_Sales], [i, i], 'o-', color='gray', linewidth=1) for i, row in data.iterrows()] # Plot Q1 sales (blue dots) ax.scatter(data['Q1_Sales'], y_positions, color='blue', s=50, label='Q1 销售额') # Plot Q2 sales (red dots) ax.scatter(data['Q2_Sales'], y_positions, color='red', s=50, label='Q2 销售额') # Set y-axis labels and ticks ax.set_yticks(y_positions) ax.set_yticklabels(categories) # Set labels and title ax.set_xlabel('销售额($)') ax.set_title('Q1 与 Q2 销售额对比') ax.legend() # Add grid lines ax.grid(True, axis='x', linestyle='--', alpha=0.7) # Adjust layout and display plot plt.tight_layout() plt.show()