我试图复制this示例,除了作为水平条形图
我写了这段代码:
import sys
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import StrMethodFormatter
import numpy as np
Fams = ['Item1','Item2','Item3','Item4','Item5','Item6','Item7','Item8','Item9','Item10','Item11','Item12','Item13','Item14','Item15','Item16','Item17','Item18','Item19','Item20','Item21']
AllTested = [3,3,3,3,4,4,4,4,4,4,4,5,5,6,6,7,9,9,10,10,27]
BestSubsetTested = [1,0,0,0,3,0,3,0,1,0,1,1,2,4,1,1,8,4,9,8,11]
plt.figure(figsize=[60,40])
X = np.arange(len(Fams))
plt.barh(X,AllTested,color='g')
plt.barh(X + 0.25,BestSubsetTested,color='b')
plt.yticks([i+0.25 for i in range(len(Fams))],Fams)
# Naming the x and y axis
plt.xlabel('Tests')
plt.ylabel('Fams')
plt.savefig('day2.png',format='png')
当我不添加任何宽度参数时,脚本将运行,但在输出中,这些条不会彼此相邻:
由于我希望两条线彼此相邻(即,Fam项目有两条线配对在一起-AllTested和BestSubseted-,每个Fam项目之间的间隙稍大,以明确这一点,类似于示例),我在示例中添加了“width”参数,但我得到了错误:
我得到一个错误,说:
Traceback (most recent call last):
File "make_plot_species_multiple2.py", line 13, in <module>
plt.barh(X,AllTested,color='g',width=0.25)
有人能帮我吗
最终输出应该与我所做的类似,除了
钢筋成对(即项目1有两根钢筋,项目2有两根钢筋)
每对条的名称应该在其
的中间如果你能告诉我如何倾斜每个条的名称45/使字体更大,这样更可读,那将是非常好的,因为我缩短了这个例子的名称
对于
barh
,条的宽度由height
参数控制,而不是由width
参数控制。在这里,我将两个barh
调用的height
设置为0.4,并将它们偏移+/-0.25。如果你像我这里做的那样上下偏移这些条,你不需要偏移这些条要旋转记号标签,可以将
rotation=45
添加到yticks
函数中为了使刻度标签更大,我只是将数字大小从(60,40)减小到(12,8)。另一种方法是更改所有记号标签和轴标签的字体大小
相关问题 更多 >
编程相关推荐