matplotlib棉棒图个性化设置

问题描述

matplotlib中有绘制棒状图或者棉棒图stem的功能,官网上给了基础的例程:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 2 * np.pi, 41)
y = np.exp(np.sin(x))

plt.stem(x, y, use_line_collection=True)
plt.show()

运行结果如下:
在这里插入图片描述
官方并没有明确给出相关的美化函数,想要美化的化,缺少一些资料

解决办法

分析了stem的函数名:

Axes.stem(self, *args, linefmt=None, markerfmt=None, basefmt=None, bottom=0, label=None, use_line_collection=False, data=None)

比较重要的在于linefmt、markerfme和basefmt上,这个是设置,可以像plot设置line和marker一样的设置线性和颜色。
bottom这个参数比较特殊,它是说水平基线所处的位置,默认为0,我们可以修改(下面将改为1)。
这个函数的返回描述如下:

containerStemContainer

The container may be treated like a tuple (markerline, stemlines, baseline)

可以看到他返回了有markerline, stemlines, baseline元素的元祖,则我们对其设置就能实现marker、垂线以及基线的个性化设置,使用setp函数,整体代码如下:

import numpy as np
import matplotlib.pyplot as plt
# 生成模拟数据集
x=np.linspace(0,10,20)
y=np.random.randn(20)
# 绘制棉棒图
#这个bottom是决定了棉棒图的基线位置的
markerline, stemlines, baseline = plt.stem(x,y,linefmt='-',markerfmt='o',basefmt='--',label='TestStem',bottom=1)
# 可单独设置棉棒末端,棉棒连线以及基线的属性
plt.setp(stemlines,lw=0.5)
plt.setp(markerline, lw=0.5,
			 color='k',markersize=0.5)  # 将棉棒末端设置为黑色
plt.setp(baseline,lw=0.5)

plt.legend()
plt.show()

运行结果,可见我对其成功进行了丑化,(仅仅是示例而已):
在这里插入图片描述

总结

多看matplotlib文档,分析函数返回的变量,虽然有些没有操作没有明确说明,但类型差不多,就能一些常见的参数来美化它们

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

月司

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

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

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

打赏作者

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

抵扣说明:

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

余额充值