这是我的第一个python图。 下面的问题是关于学生百分比(0-100%)的绘制。 我正在尝试将x轴值设置为[0、10、20到100],并在间隔中显示条形图。问题是x轴只得到5个值,它们没有排序。我必须在excel表的每一列上显示数据和绘制图表,这就是我编写这个方法的原因。 I have attached this graph which i am getting from following code.
import xlrd as x
import matplotlib.pyplot as plt1
excelFile = 'cal1.xls'
workBook = x.open_workbook(excelFile)
workSheet = workBook.sheet_by_name("Sheet1")
rows = workSheet.nrows
cols = workSheet.ncols
def getData_Excel(col):
list = []
for count in range(1, rows, 1):
list.append(workSheet.cell_value(count, col))
print("\nStudent ", count, " : ", list[count-1:count])
print()
return list
print("Students Matric Marks:")
matricData = [getData_Excel(3)]
matricLegend = ['Matric %']
plt1.hist(matricData, histtype = 'bar', color = 'blue', rwidth = 0.8)
plt1.xlabel('Percentage')
plt1.ylabel('Number of Students')
plt1.xticks(range(0, 110, 10))
plt1.yticks(range(0, 160, 20))
plt1.title("Matric Marks")
plt1.legend(matricLegend)
plt1.show()
如果我完全明白你的意思,就你的问题而言,你应该使用
bar
,而不是hist
。你知道吗matricData
放在y轴上,得到学生的数量。x轴表示得分间隔。所以你可以这样编码:我用一个示例尝试了这个代码:
matricData=[110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
然后得到理想的结果,如下图所示:
相关问题 更多 >
编程相关推荐