Python
数据可视化

数据可视化

Matplotlib

通用设置

plt.figure(figsize=(6, 6), dpi=100) # 创建画布并指定画布大小及分辨率
plt.rcParams['font.sans-serif'] = 'SimHei' # 解决中文乱码问题
plt.rcParams['lines.linewidth'] = 3 # 设置线宽
plt.rcParams['lines.linestyle'] = '--' # 设置线型
plt.xlabel('X轴') # 设置X轴标签
plt.ylabel('Y轴') # 设置Y轴标签
plt.title('标题') # 设置全局标题
plt.xticks([x for x in range(1,13)]) # 设置X轴跨度
plt.yticks([y for y in range(0,101,10)]) # 设置Y轴跨度

柱状统计图 Bar

plt.bar(data['month'], data['math'], width=0.3, color='red')
plt.bar(data['month'] + 0.3, data['english'], width=0.3, color='blue')
# (横坐标数据,纵坐标数据,柱宽,颜色)
# 可以通过偏移绘制多个统计图

折线统计图 Plot

plt.plot(data['month'], data['math'], color='blue')
plt.plot(data['month'], data['english'], color='red')
# (横坐标数据,纵坐标数据,颜色)
# 线型和粗细可以通过全局属性设置

散点统计图 Scatter

plt.scatter(data['month'], data['math'], color='blue')
plt.scatter(data['month'], data['english'], color='red')
# (横坐标数据,纵坐标数据,颜色 )

Seaborn

柱状统计图 BarPlot

sns.barplot(data=data, x=data['month'], y=data['math'], color='blue')
# (数据,X轴数据,y轴数据,颜色)
melted_data = pd.melt(data, id_vars=['month'], value_vars=['math', 'english'],
                          var_name='subject', value_name='score')
# 反透视数据(数据,作为标识符的列,需要被逆透视的列,被逆透视后的列名,逆透视化后的列名)
sns.barplot(data=melted_data, x='month', y='score',
                hue='subject', palette={'math': 'blue', 'english': 'red'})
# 若需要分簇显示,可以先逆透视数据,再使用hue参数来分类

折线统计图 LinePlot

sns.lineplot(data=data, x=data['month'], y=data['math'], color='blue')
# (数据,X轴数据,y轴数据,颜色)

散点统计图 ScatterPlot

sns.scatterplot(data=data, x=data['month'], y=data['math'], color='blue')

Pyecharts

柱状统计图 Bar

bar = Bar() # 创建一个Bar对象
bar.add_xaxis(list(data['month'])) # 添加x轴数据
bar.add_yaxis('math', list(data['math'])) # 添加y轴数据
bar.add_yaxis('english', list(data['english'])) # 添加第二个y轴数据
bar.render('index.html') # 渲染到HTML中

:::warning 在使用柱状统计图 Bar 时,传入的数据必须为 Python 的原生类型,而不能为 DataFrame :::

折线统计图 Line

line = Line() # 创建一个Line对象
line.add_xaxis(data['month'])
line.add_yaxis('math', data['math'])
line.add_yaxis('english',data['english'])
line.render('index.html')
# 折线统计图可以直接传入DataFrame,而无需传入原生数据类型

散点统计图 Scatter

scatter = Scatter() # 创建一个Scatter对象
scatter.add_xaxis(data['month'])
scatter.add_yaxis('math', data['math'])
scatter.add_yaxis('english',data['english'])
scatter.render('index.html')