Matplotlib数据可视化
- 用lipsticks数据做以下数据可视化
(1)各大品牌市场占有率,排名前三的品牌名称(按品牌分组,饼图)
(2)评论最多的三大品牌(柱状图,注意调整画布大小及其X轴字体角度)
(3)判断是否搞活动折扣价越低会增加买家的评论数(数据标准化,彩色散点图)
(4)原价、折扣价、评论数的彩色气泡图(彩色气泡图)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
brand_comment_counts = data.groupby('品牌')['评论数'].sum().sort_values(ascending=False)
top_brands = brand_comment_counts.head(3)
plt.figure(figsize=(10, 7))
plt.pie(top_brands, labels=top_brands.index, autopct='%1.1f%%', startangle=140)
plt.title('Top 3 brands market share')
plt.show()
plt.figure(figsize=(12, 6))
plt.bar(top_brands.index, top_brands, color=['red', 'green', 'blue'])
plt.title('Top 3 brands with the most comments')
plt.xlabel('Brand')
plt.ylabel('Number of Comments')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()
import random
import matplotlib.colors as mcolors
brands = data['品牌'].unique()
colors = random.sample(list(mcolors.CSS4_COLORS.keys()), len(brands))
brand_color_map = dict(zip(brands, colors))
data['颜色'] = data['品牌'].map(brand_color_map)
data_std = (data - data.mean()) / data.std()
plt.figure(figsize=(12, 6))
plt.scatter(data_std['折扣价'], data_std['评论数'], c=data['颜色'], cmap='viridis', edgecolors='k', s=100)
plt.title('Do lower discounts lead to more reviews?')
plt.xlabel('Discount Price (standardized)')
plt.ylabel('Number of Reviews (standardized)')
plt.colorbar(label='Brand')
plt.tight_layout()
plt.show()
plt.figure(figsize=(12, 6))
plt.scatter(data['原价'], data['折扣价'], s=data['评论数']*10, c=data['颜色'], cmap='viridis', edgecolors='k', alpha=0.6)
plt.title('Price, Discount Price, and Number of Reviews')
plt.xlabel('Original Price')
plt.ylabel('Discount Price')
plt.colorbar(label='Brand')
plt.tight_layout()
plt.show()
- 对rate1(国家对科技资金投入)数据做可视化分析(第一问40分,第二问、第三问各30分)注意先对数据进行数据预处理(去重:删除空行;查看缺失值;处理缺失值;再次査看缺失值,缺失值都为零再做可视化)
- (1)每个国家2005-2015资金投入的箱线组图
- (2)2005-2015年各个国家的投资情况折线图(说明每个国家哪一年投入最多)
- (3)绘制2006年各个国家对科技资金投入的条形图(说明哪个国家最多,哪个国家最少)