想要从Python文本文件中的数据绘制条形图

想要从Python文本文件中的数据绘制条形图,python,file,plot,text,charts,Python,File,Plot,Text,Charts,好吧,我很困惑,一点进展也没有。python新手,使用Pycharm/python3 我的桌面上保存了一个文本文件(Win 10)。该文件包含名称、逗号和数字 e、 g 姓名1,号码 姓名2,号码 姓名3,号码 姓名4,号码 (等) 名字都不一样,数字没有顺序,有些相同,有些不同 这些数字是整数,我要做的就是画一个条形图。x轴上的名称和y轴上的数字(降序排列) 我试了又试,试了又试,但我无法让它发挥作用 我可以访问该文件,但无法对其执行任何操作。我可以得到我想要的输出,但我无法访问它。我能得到零

好吧,我很困惑,一点进展也没有。python新手,使用Pycharm/python3

我的桌面上保存了一个文本文件(Win 10)。该文件包含名称、逗号和数字

e、 g

姓名1,号码

姓名2,号码

姓名3,号码

姓名4,号码

(等)

名字都不一样,数字没有顺序,有些相同,有些不同

这些数字是整数,我要做的就是画一个条形图。x轴上的名称和y轴上的数字(降序排列)

我试了又试,试了又试,但我无法让它发挥作用

我可以访问该文件,但无法对其执行任何操作。我可以得到我想要的输出,但我无法访问它。我能得到零碎的东西,但我不能把它们拼在一起。我知道这可能是一件容易的事情,但没有什么是有意义的,似乎没有什么工作了,可以用一只手

你是怎么做到的


谢谢

像这样的东西会有用的。如果你有任何问题,请告诉我

import matplotlib.pyplot as plt

filepath = r"C:\Users*me*\Desktop\my_file.txt"
with open(filepath) as file:
    entries = [x.split(",") for x in file.readlines()] # Read the text, splitting on comma.
    entries = [(x[0],int(x[1])) for x in entries] # Turn the numbers into ints.
    entries.sort(key=lambda x:x[1], reverse=True) # Sort by y-values.
    x_coords = [x[0] for x in entries]
    y_coords = [x[1] for x in entries]
    plt.bar(x_coords,y_coords) # Draw a bar chart
    plt.show()

像这样的东西会有用的。如果你有任何问题,请告诉我

import matplotlib.pyplot as plt

filepath = r"C:\Users*me*\Desktop\my_file.txt"
with open(filepath) as file:
    entries = [x.split(",") for x in file.readlines()] # Read the text, splitting on comma.
    entries = [(x[0],int(x[1])) for x in entries] # Turn the numbers into ints.
    entries.sort(key=lambda x:x[1], reverse=True) # Sort by y-values.
    x_coords = [x[0] for x in entries]
    y_coords = [x[1] for x in entries]
    plt.bar(x_coords,y_coords) # Draw a bar chart
    plt.show()

我认为这将是最简单的实现:

#导入库
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
#将格式化为csv的txt文件读入数据框并命名为COL
df=pd.read\u csv('my_file.txt',name=['name','number'])
打印(df.head())
#策划它
plt.bar(df.name,df.number)#这相当于df['name'],df['number']
plt.show()

有很多其他方法可以使这变得更复杂,改进绘图,确保数据类型正确等。但这很有希望让您继续。

我认为这将是最简单的实现:

#导入库
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
#将格式化为csv的txt文件读入数据框并命名为COL
df=pd.read\u csv('my_file.txt',name=['name','number'])
打印(df.head())
#策划它
plt.bar(df.name,df.number)#这相当于df['name'],df['number']
plt.show()

有很多其他方法可以使这变得更复杂,改进绘图,确保数据类型正确等。但这将有望让您继续。

谢谢……没有错误,但绘图是空的。可能是我的问题,没有正确访问文本文件。如何访问桌面上的文件。我使用:C:\Users*me*\Desktop\my_file.TXT当然,我已经将它修改为文件路径的加载方式。谢谢Jimmy,是的,我正确地执行了文件路径,代码运行时没有错误,但是打印窗口是空的。是否应该将“文件名”更改为“文件路径”?即使是这样,我试着做了改变,但还是得到了一张空白的图表。它绘制了轴,记号在那里,但是其他的都是空白的。谢谢你……没有错误,但是绘图是空的。可能是我的问题,没有正确访问文本文件。如何访问桌面上的文件。我使用:C:\Users*me*\Desktop\my_file.TXT当然,我已经将它修改为文件路径的加载方式。谢谢Jimmy,是的,我正确地执行了文件路径,代码运行时没有错误,但是打印窗口是空的。是否应该将“文件名”更改为“文件路径”?即使是这样,我试着做了改变,但还是得到了一张空白的图表。它绘制轴和记号,但其他所有内容都是空白的。谢谢brobertsp,但这会引发一些我可能无法修复的错误。您是否将“my_file.txt”更改为您拥有的任何文件路径?只要您这样做了,并且您的文件被格式化为name,那么在其各自的行上对每个行进行编号就可以了。你也可以把你的错误贴在这里,以便进一步解释你的问题。brobertsp--是的,我确实做了更改,我知道它是有效的,因为我访问了文件并打印了它,它确实显示了,所以我相信我访问它是正确的。感谢您的帮助……错误……仅此而已,没有错误……它说:“进程已完成,退出代码为0”……它会弹出一个带有轴、数字、记号的绘图窗口……并且没有绘图。现在…我确实找到了一个条形图和直方图的代码片段,我可以复制并运行它,这会产生一个很好的图表…效果很好,但由于某种原因,它不喜欢我的文本文件我猜…这非常令人沮丧,lolbrobertsp----我可以运行以下程序,它可以访问并打印我桌面上文本文件的内容。file1=open(r“C:\Users\name\Desktop\my_file\u name.txt”,“r”)print(“读取函数的输出是”)print(file1.Read())brobertsp---好的……我很困惑,但是……我更改了另一个文本文件的路径,运行了程序(相同的结果),将其更改回主文本文件……现在它开始工作了。它打印了一张很好的图表…名字沿着底部排列,排序…很漂亮,我很感谢你,但我不明白为什么会这样。我99%确定这是我在做的事情,但我不知道我在做什么……谢谢,我唯一需要做的就是沿着x轴打印名字,这样它们就成了一个角度,所以它们都适合并且可以阅读。感谢您的帮助。谢谢brobertsp,但这会引发一些我可能无法修复的错误。您是否已将“my_file.txt”更改为您拥有的任何文件路径?只要您这样做了,并且您的文件被格式化为name,那么在其各自的行上对每个行进行编号就可以了。你也可以把你的错误贴在这里,以便进一步解释你的问题。brobertsp--是的,我确实做了更改,我知道它是有效的,因为我访问了文件并打印了它,它确实显示了,所以我相信我访问它是正确的。感谢您的帮助……错误……仅此而已,没有错误……它说:“进程已完成,退出代码为0”……它会弹出一个带有轴、数字、记号的绘图窗口……并且没有绘图。现在…我确实找到了条形图和柱状图的代码片段