Python:如何在轴上指定值?

时间:2018-03-24 05:44:14

标签: python matplotlib graph

这是我的第一个python图。 以下问题是关于绘制学生百分比(0-100%)。 我试图将我的x轴值设置为[0,10,20到100]并在间隔中显示条形。问题是x轴只获得5个值并且它们未排序。我必须在excel表的每个coloumn上显示数据并绘制图表,这就是我编写方法的原因。 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()

1 个答案:

答案 0 :(得分:0)

如果我完全了解您的意思,就问题而言,您应使用bar而不是hist

放在y轴上的

matricData获得学生人数。 x轴表示分数的间隔。所以你可以像这样编码:

matricData = [getData_Excel(3)]

matricLegend = ['Matric %']
x = list(np.arange(0, 110, 10))  #changed
plt1.bar(x, matricData, width=8) #
plt1.xlabel('Percentage')
plt1.ylabel('Number of Students')
plt1.xticks(range(0, 110, 10))   #
plt1.yticks(range(0, 160, 10))   #
plt1.title("Matric Marks")
plt1.legend(matricLegend)
plt1.show()

我尝试使用示例代码:

matricData=[110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10]

然后我得到了理想的结果,如下图所示: enter image description here