0

[图中y轴的数字排列不整齐,而x轴的单词靠得太近。我实际上是在为 COVID19 案例抓取维基百科表格,所以我不保存为 csv。我只是直接从网站上绘制它。]

在此处输入图像描述

我的代码也在下面

URL="https://en.wikipedia.org/wiki/COVID19_pandemic_in_Nigeria"
html=requests.get(URL)
bsObj= BeautifulSoup(html.content, 'html.parser')

states= []
cases=[]
active=[]
recovered=[]
death=[]
for items in bsObj.find("table",{"class":"wikitable 
sortable"}).find_all('tr')[1:37]:
    data = items.find_all(['th',{"align":"left"},'td'])
    states.append(data[0].a.text)
    
    cases.append(data[1].b.text)
    active.append(data[2].text)
    recovered.append(data[3].text)
    death.append(data[4].text)


table= ["STATES","ACTIVE"]
tab= pd.DataFrame(list(zip(states,active)),columns=table)
tab["ACTIVE"]=tab["ACTIVE"].replace('\n','', regex=True)

x=tab["STATES"]
y=tab["ACTIVE"]

plt.cla()
plt.bar(x,y, color="green")
plt.xticks(fontsize= 5)
plt.yticks(fontsize= 8)
plt.title("PLOTTERSCA")
plt.show()
4

2 回答 2

0

条形图按它们出现的顺序绘制。在这种情况下,无需创建数据框。尝试以下操作:

x=[s.replace('\n', '') for s in  states]
y=np.array(active)

order = np.argsort(y)

xNew = [x[i] for i in order]
yNew = y[order]

plt.cla()
plt.bar(xNew,yNew, color="green")
plt.xticks(fontsize= 5, rotation=90)
plt.yticks(fontsize= 8)
plt.title("PLOTTERSCA")
plt.show()

在这里,我们根据 y 值对所有内容进行了重新排序。此外,xticks 已经旋转,以便更容易看到......

于 2020-06-21T17:32:52.260 回答
0

没有数据很难说,但是您可以尝试对 y 轴上的值进行排序:

y.sort()
plt.bar(x,y, color="green")
于 2020-06-21T17:05:32.783 回答