本关任务:按提示的要求使用matplotlib绘图,一共要求完成3个函数的设计,分别绘制线图、饼图和条形图,绘制图形的数据已在函数中指定,函数的参数是一个图片文件名,请将图片的绘制结果保存到这个图片中,图片的dpi使用默认值即可。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='simHei' #显示汉字
plt.rcParams['axes.unicode_minus'] = False #显示负号
def DrawLine(output_name):
x=np.arange(0,2*np.pi,0.1)
y1=np.sin(x)
y2=np.sin(x*2)
plt.figure('fig1')
########## begin ##########
# 请在此填写代码,分别使用数据(x,y1)和(x,y2)绘制线图
plt.plot(x,y1,'r-')
plt.plot(x,y2,'b-')
plt.title('不同周期正弦曲线')
plt.xlabel('自变量')
plt.ylabel('因变量')
plt.legend(['2π周期','π周期'],loc='upper right')
plt.savefig(output_name)#,保存图片名称和分辨率
########## end ##########
def DrawPie(output_name):
sales=[1528,796,543,1046,865,] #手机店上月各品牌手机销量
brands=['华为', 'vivo', 'oppo', '小米', '苹果'] #品牌列表
plt.figure('fig2')
########## begin ##########
# 请在此填写代码,绘制手机销量的饼图
plt.pie(sales,[0.1,0,0,0,0],brands,autopct='%.1f%%')#数据,分离度,标签,格式
plt.title('手机销量')
plt.savefig(output_name)
########## end ##########
def DrawBar(output_name):
avg_scores = np.array([80.54, 78.46, 74.68, 82.35]) #各班考试平均分
class_name = ['机械1班', '机械2班', '电气1班', '电气2班']
plt.figure('fig3')
########## begin ##########
# 请在此填写代码,绘制各班平均成绩的条形图
plt.bar(class_name,avg_scores) #x轴序列,y轴序列
plt.xlabel('班级')
plt.ylabel('平均成绩')
plt.savefig(output_name)
########## end ##########
我们在第一关练习了使用matplotlib进行线图、饼图和条形图绘制的基本方法,本关我们练习使用numpy或pandas从文件中载入数据,然后用matplotlib对这些数据进行可视化。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
matplotlib.rcParams['font.family']='simHei' #显示汉字
plt.rcParams['axes.unicode_minus'] = False #显示负号
#input_name:输入的excel文件名
#output_name:输出的图片文件名
def DrawLine(input_name, output_name):
plt.figure('fig1')
########## begin ##########
# 请在此填写代码,绘制开盘价和收盘价的线图,日期为横轴
df1=pd.read_excel(input_name)
plt.plot(df1.日期,df1.开盘,'b-v')
plt.plot(df1.日期,df1.收盘,'r-v')
plt.title('开盘价与收盘价对比图')
plt.xlabel('日期')
plt.ylabel('股价')
plt.legend(['开盘价','收盘价'],loc='upper right')
plt.savefig(output_name)#,保存图片名称和分辨率
########## end ##########
#input_name:输入的csv文件名
#output_name:输出的图片文件名
def DrawBar(input_name, output_name):
plt.figure('fig2')
########## begin ##########
# 请在此填写代码,绘制各年度的国内生产总值的条形图
df1=pd.read_csv(input_name,names=['年度','国内生产总值','第一产业','第二产业','第三产业'])
plt.bar(df1.年度,df1.国内生产总值)
plt.xlabel('年度')
plt.ylabel('国内生产总值')
plt.savefig(output_name)
########## end ##########
难度并不大,就是要求对matplotlib基本用法有了解和初步掌握。
求求三连。。