第1关:“大胃王”比赛数据柱形图绘制——绘制柱形图的…
# -*- coding: utf-8 -*-
import pandas as pd
from matplotlib import pyplot as plt
hot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv")
def plot():
# ********* Begin *********#
fig, ax = plt.subplots() #subplots返回画布和子图
ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"]) #绘制柱形图,第一个参数为x轴变量,第二个参数为y轴变量
plt.show() #显示图像
# ********* End *********#
plt.savefig('matplotlib_bar/studentfile/studentanswer/level_1/US.png')
plt.close()
第2关:“大胃王”比赛数据柱形图绘制——柱形图展示优化
# -*- coding: utf-8 -*-
import pandas as pd
from matplotlib import pyplot as plt
hot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv")
def plot():
# ********* Begin *********#
fig, ax = plt.subplots() #subplots返回画布和子图
ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"],width=[0.6],color=unitedStatesColor()) #添加指定的宽度
ax.set_xlabel("Year") #设置x轴标签
ax.set_ylabel("Dogs Eaten") #设置y轴标签
ax.set_title("Hotdog game scores 1980-2010") #设置标题
ax.set_xlim(1979,2011) #设置x轴数据限值
plt.rcParams['figure.figsize'] = (8.0, 4.0) #设置figure_size尺寸
# ********* End *********#
plt.savefig('matplotlib_bar/studentfile/studentanswer/level_2/US.png')
plt.close()
def unitedStatesColor():
# ********* Begin *********#
list=[]
for i in hot_dog["Country"]:
if i=='United States':
list.append("#DB7093") #打破记录的年份显示为粉红色
else:
list.append("#5F9F9F") #其余年份显示为灰绿色
return list
# ********* End *********#
文章通过Python的matplotlib库和pandas库处理CSV数据,展示了如何绘制和优化柱形图。代码首先读取比赛数据,然后在第一关绘制基本柱形图,第二关则增加了柱形的宽度和颜色设定,以区分美国选手打破记录的年份,同时设置了图表的标签、标题和限制范围,提升了图表的可读性。
3771

被折叠的 条评论
为什么被折叠?



