我试图为每个数据集绘制一个帧(“n”和“m”)的两个不同数据列,作为彼此相邻的两个不同颜色的条。
def graphPlot(data, size=None):
pos = arange(len(data))+.5 # the bar centers on the y axis
figure(figsize=size)
xscale("log")
barh(pos, data["n"], align='center', height=0.25, color="darkgrey")
barh(pos - 0.25, data["m"], align='center', height=0.25, color="lightblue")
yticks(pos, data["graph"])
xlabel("")
grid(True)
但事实证明是这样的:
为什么没有正确绘制条形图?我的职位价值是错的吗?
答案 0 :(得分:1)
这是导致问题的xscale("log")
电话。您需要缩放图表,然后将log=True
传递给barh
来电:
def graphPlot(data, size=None):
pos = arange(len(data))+.5 # the bar centers on the y axis
figure(figsize=size)
#xscale("log")
barh(pos, data["n"], align='center', height=0.25, color="darkgrey", log=True)
barh(pos - 0.25, data["m"], align='center', height=0.25, color="lightblue", log=True)
yticks(pos, data["graph"])
xlabel("")
grid(True)
另一种方法是使用pandas dataframe来保存您的数据,然后只需致电df[['ser1', 'ser2']].plot(kind='barh', logx=True)
。