使用prettyplotlib创建优雅的散点图:从默认样式到专业可视化

使用prettyplotlib创建优雅的散点图:从默认样式到专业可视化

默认matplotlib散点图的问题

matplotlib作为Python中最流行的数据可视化库,其默认样式直接借鉴了MATLAB的风格,这导致了一些美学上的不足。最明显的问题是:

  1. 默认颜色循环不够美观
  2. 散点图不会自动应用颜色循环
  3. 点标记缺乏层次感和视觉区分度
import matplotlib.pyplot as mpl_plt
import numpy as np

np.random.seed(12)
fig, ax = mpl_plt.subplots(1)

for i in range(8):
    x = np.random.normal(loc=i, size=1000)
    y = np.random.normal(loc=i, size=1000)
    ax.scatter(x, y, label=str(i))
    
ax.legend()
ax.set_title('默认matplotlib散点图示例')

逐步优化散点图视觉效果

第一步:改进颜色方案

使用ColorBrewer的Set2配色方案替代默认颜色:

import brewer2mpl
set2 = brewer2mpl.get_map('Set2', 'qualitative', 8).mpl_colors

for i in range(8):
    color = set2[i]
    ax.scatter(x, y, label=str(i), color=color)

第二步:添加透明度

通过alpha参数(0-1之间)增加点的透明度,提高重叠区域的可见性:

ax.scatter(x, y, label=str(i), color=color, alpha=0.5)

第三步:添加点标记边框

为点标记添加细边框可以增强视觉层次感:

ax.scatter(x, y, label=str(i), alpha=0.5, 
           edgecolor='black', facecolor=color, linewidth=0.15)

第四步:优化坐标轴样式

移除顶部和右侧的坐标轴线,精简可视化:

# 移除顶部和右侧轴线
spines_to_remove = ['top', 'right']
for spine in spines_to_remove:
    ax.spines[spine].set_visible(False)

# 移除所有刻度线
ax.xaxis.set_ticks_position('none')
ax.yaxis.set_ticks_position('none')

第五步:使用深灰色替代纯黑

纯黑色在视觉上过于强烈,使用深灰色(#262626)更加柔和:

almost_black = '#262626'
ax.scatter(x, y, edgecolor=almost_black, ...)

# 调整坐标轴线颜色和粗细
for spine in ['bottom', 'left']:
    ax.spines[spine].set_linewidth(0.5)
    ax.spines[spine].set_color(almost_black)

第六步:优化图例

默认图例有多余的边框和重复标记,优化方案:

light_grey = np.array([248/255]*3)  # 浅灰色背景
legend = ax.legend(frameon=True, scatterpoints=1)
rect = legend.get_frame()
rect.set_facecolor(light_grey)
rect.set_linewidth(0.0)

# 设置图例文本颜色
for t in legend.texts:
    t.set_color(almost_black)

prettyplotlib的一站式解决方案

经过上述6个步骤的优化,我们终于得到了一个专业的散点图。而prettyplotlib将这些优化封装成简洁的API:

import prettyplotlib as ppl
from prettyplotlib import plt

fig, ax = plt.subplots(1)
for i in range(8):
    ppl.scatter(ax, x, y, label=str(i))
    
ppl.legend(ax)
ax.set_title('使用prettyplotlib创建的优雅散点图')

prettyplotlib的主要优势包括:

  1. 内置美观的ColorBrewer配色方案
  2. 自动优化点标记的透明度和边框
  3. 精简的坐标轴系统
  4. 专业设计的图例样式
  5. 一致的视觉风格

通过使用prettyplotlib,数据分析师和科研人员可以节省大量图表美化时间,专注于数据本身的洞察和发现。这个库特别适合需要频繁创建出版级质量图表的研究人员和数据科学家。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕曦耘George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值