如何在Python中筛选数据并创建柱状图?以及如何绘制仅展示screen_size大于6英寸数据的柱状图?
嘿,我来帮你搞定这两个Python数据可视化的问题!咱们用最常用的pandas(数据处理)和matplotlib(绘图)库来实现,这俩搭配起来处理这类需求超顺手~
一、基础版:数据筛选+柱状图绘制
咱们先从最基础的流程入手,步骤大概是:导入库 → 准备/加载数据 → 筛选目标数据 → 绘制柱状图。
举个实际的例子,假设咱们有一份手机产品的数据,包含品牌、屏幕尺寸、销量这些字段:
# 1. 导入需要的库 import pandas as pd import matplotlib.pyplot as plt # 2. 准备示例数据(你也可以用pd.read_csv加载本地/线上数据) data = { 'brand': ['Apple', 'Samsung', 'Xiaomi', 'Huawei', 'OPPO'], 'screen_size': [6.1, 6.7, 6.6, 6.5, 6.4], 'sales': [2500, 3200, 2800, 2100, 1900] } df = pd.DataFrame(data) # 3. 进行数据筛选(比如筛选销量大于2000的记录) filtered_df = df[df['sales'] > 2000] # 4. 绘制柱状图 plt.figure(figsize=(10, 6)) # 设置图的大小 plt.bar(filtered_df['brand'], filtered_df['sales'], color='#4CAF50') # 画柱状图,指定颜色 plt.title('Sales of Phones with Sales > 2000', fontsize=14) # 标题 plt.xlabel('Brand', fontsize=12) # X轴标签 plt.ylabel('Sales (in thousands)', fontsize=12) # Y轴标签 plt.xticks(rotation=45) # X轴标签旋转,避免重叠 plt.tight_layout() # 自动调整布局,防止标签被截断 plt.show()
简单解释下:这里用df[条件]的方式快速筛选数据,再通过plt.bar()绘制柱状图,你可以根据需求自定义颜色、标题、标签样式,让图表更贴合你的使用场景。
二、进阶版:仅展示screen_size大于6英寸的柱状图
这个需求就是把筛选条件换成screen_size > 6,咱们直接基于上面的示例数据修改就行:
# 1. 筛选screen_size大于6英寸的数据 filtered_screen_df = df[df['screen_size'] > 6] # 2. 绘制柱状图(这里咱们把Y轴设为屏幕尺寸,也可以换成销量等其他指标) plt.figure(figsize=(10, 6)) plt.bar(filtered_screen_df['brand'], filtered_screen_df['screen_size'], color='#2196F3') plt.title('Screen Sizes > 6 Inches by Brand', fontsize=14) plt.xlabel('Brand', fontsize=12) plt.ylabel('Screen Size (inches)', fontsize=12) plt.xticks(rotation=45) plt.tight_layout() plt.show()
如果你的需求是基于筛选后的屏幕尺寸数据展示其他指标(比如对应品牌的销量),只需要把plt.bar()里的第二个参数换成对应的列即可,比如filtered_screen_df['sales']。
额外提个小技巧:如果你的原始数据里有缺失值,建议先用df.dropna(subset=['screen_size'])把缺失屏幕尺寸的行删掉,避免筛选出异常结果~
内容的提问来源于stack exchange,提问作者Nuwan Fernando
相关产品推荐
相关产品推荐

