Python:如何指定轴上的值?

2024-09-28 03:17:15 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一个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()

Tags: importascount绘制rangeexcellistrows
1条回答
网友
1楼 · 发布于 2024-09-28 03:17:15

如果我完全明白你的意思,就你的问题而言,你应该使用bar,而不是hist。你知道吗

matricData放在y轴上,得到学生的数量。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

相关问题 更多 >

    热门问题