import pandas as pd import matplotlib.pyplot as plt #数据预处理 data = pd.read_csv('icpc-full.csv') #去除多余数据 data = data.drop(['Date','Host','City','Venue','Team','Contestant 1','Contestant 2','Contestant 3','Score','Total'],axis = 1) #排名前10 topteam = data[data['Rank'] < 10 ] cpteam = topteam[data['Rank'] <3] winner = cpteam['University'].value_counts().to_dict() print('dasdsadasd') #计数 good = topteam['University'].value_counts().to_dict() #截取前十 top10 = dict(sorted(good.items(), key=lambda x: x[1], reverse=True)[:10]) top3 = dict(sorted(winner.items(), key=lambda x: x[1], reverse=True)[:10]) # 绘制柱状图 fig, ax = plt.subplots(figsize=(10, 6)) ax.bar(range(len(top10)), list(top10.values()), align='center', color='cyan', label='Top 10 universities') ax.bar(range(len(top3)), list(top3.values()), align='center', color='springgreen', label='Top 3 universities') ax.set_xticks(range(len(top10))) ax.set_xticklabels(list(top10.keys())) ax.legend() plt.show()
时间: 2024-01-14 09:02:48 浏览: 96
这段代码是一个数据处理和可视化的例子。首先使用pandas库读取一个csv文件,并通过drop()函数去除了一些多余的列,然后将排名前10的数据筛选出来,再进一步将排名前3的数据筛选出来,并统计其出现次数。最后,使用matplotlib库绘制柱状图,展示排名前10的大学和排名前3的大学的出现次数。
其中,fig, ax = plt.subplots(figsize=(10, 6)) 创建了一个大小为10x6的图表,ax.bar()函数用于绘制柱状图,ax.set_xticks()和ax.set_xticklabels()函数用于设置x轴刻度和标签,ax.legend()函数用于显示图例。
如果您有任何问题或者需要进一步的解释,请告诉我。
相关问题
import pandas as pd import matplotlib.pyplot as plt #数据预处理 data = pd.read_csv('icpc-full.csv') #去除多余数据 data = data.drop(['Date','Host','City','Venue','Team','Contestant 1','Contestant 2','Contestant 3','Score','Total'],axis = 1) #排名前15 data1 = data[data['Rank'] <15] #计数 good = data1['University'].value_counts().to_dict() #筛选出排名前十 top_team = good.nlargest(n=10) #将字典拆分成两个列表 names = list(top_team.keys()) counts = list(top_team.values()) #绘制 plt.bar(names, counts) #设置图形属性 plt.xlabel('Names') plt.ylabel('Counts') plt.title('Top 10 Name Counts') plt.show() #显示
这段代码是一个使用Python的Pandas和Matplotlib库进行数据处理和可视化的程序。它首先从名为'icpc-full.csv'的CSV文件中读取数据,并删除了一些不必要的数据列。然后,它筛选出排名前15的数据,并通过Pandas的value_counts()方法计数每个大学出现的次数,将结果存储在一个字典中。接下来,它选出排名前十的大学,并将它们的名称和计数值分别存储在两个列表中。最后,它使用Matplotlib的bar()方法将数据绘制成柱状图,并设置图形的属性,如X轴和Y轴的标签、标题等,最终显示图形。
以STU为数据绘制折线图
要绘制上海交通大学队伍的排名折线图,我们需要用到 Matplotlib 库。可以将代码修改如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('icpc-full.csv')
# 数据预处理
data = data.drop(['Date', 'Host', 'City', 'Venue', 'Team', 'Contestant 1', 'Contestant 2', 'Contestant 3', 'Score', 'Total'], axis=1)
# 选取上海交通大学队伍的信息
stu = data[data['University'] == 'Shanghai Jiao Tong University'][['Rank', 'Year']]
# 绘制折线图
plt.plot(stu['Year'], stu['Rank'], marker='o')
plt.xlabel('Year')
plt.ylabel('Rank')
plt.title('Rank of Shanghai Jiao Tong University')
plt.show()
```
这样就可以绘制出上海交通大学队伍的排名折线图了。其中,我们使用 `plt.plot()` 函数来绘制折线图,指定 x 轴数据为年份,y 轴数据为排名,同时指定了点的样式为圆点。另外,我们还使用 `plt.xlabel()`、`plt.ylabel()` 和 `plt.title()` 函数来为图表添加轴标签和标题。最后,使用 `plt.show()` 函数来显示图表。
阅读全文