2

是否有可能在没有 y-(x-) 轴的情况下进行条形图?在演示文稿中,所有冗余信息都必须删除,所以我想开始删除轴。我没有在 matplotlib 文档中看到有用的信息。也许你有比 pyplot 更好的解决方案..?

编辑:除了底部的轴外,我想在条形周围有线条。这可能吗

#!/usr/bin/env python 
import matplotlib.pyplot as plt

ind = (1,2,3)
width = 0.8
fig = plt.figure(1)
p1 = plt.bar(ind,ind)
# plt.show() 
fig.savefig("test.svg")

编辑:我没有看到使用 plt.show() 仍然存在没有刻度的 yaxis。

4

2 回答 2

7

要使轴不可见,请尝试类似

import matplotlib.pyplot as plt
ind = (1,2,3)
width = 0.8
fig,a = plt.subplots()
p1 = a.bar(ind,ind)
a.xaxis.set_visible(False)
a.yaxis.set_visible(False)
plt.show()

这是你的意思吗?

于 2013-09-23T20:30:04.793 回答
1

这是我最后使用的代码。它不再是最小的了。也许它有帮助。

import matplotlib.pyplot as plt
import numpy as np

def adjust_spines(ax,spines):
    for loc, spine in ax.spines.items():
        if loc in spines:
            spine.set_smart_bounds(True)
        else:
            spine.set_color('none') # don't draw spine
    # turn off ticks where there is no spine
    if 'left' in spines:
        ax.yaxis.set_ticks_position('left')
    else:
        # no yaxis ticks
        ax.yaxis.set_ticks([])

def nbar(samples, data, err, bWidth=0.4, bSafe=True, svgName='out'):
    fig,a = plt.subplots(frameon=False)
    if len(data)!=len(samples):
        print("length(data) must be equal to length(samples)!")
        return
    ticks = np.arange(len(data))
    p1 = plt.bar(ticks, data, bWidth, yerr=err)
    plt.xticks(ticks+bWidth/2., samples )
    adjust_spines(a,['bottom'])
    a.xaxis.tick_bottom()
    if bSafe:
        fig.savefig(svgName+".svg")

samples = ('Sample1', 'Sample2','Sample3')
qyss = (91, 44, 59)
qysserr = (1,5,4)
nbar(samples,qyss,qysserr,svgName="test")

感谢所有贡献者。

于 2013-09-23T23:16:11.670 回答