组队学习 matplotlib task2

本文介绍了Matplotlib的基本绘制步骤,区分了primitives(基本元素如线条和矩形)和containers(图形容器如figure、axes),并展示了如何使用Artist绘制折线图和模拟积分面积。通过实例演示了如何用不同颜色和粗细绘制特定州的数据和模拟函数图形。
摘要由CSDN通过智能技术生成

一 概述

1.matplotlib的基本绘制步骤

显示绘画步骤

  • 找一张纸或者一块画布;
  • 调色等一系列前戏;
  • 作画。

Matplotlib对应的三个基本的模块

  • FigureCanvas
  • Renderer
  • Artist

2.Artist的分类

Artist分为primitivescontainers两个类型。

primitives为基本元素,像我们图像中的线条,矩形等。

containers为容器,是用来装基本元素的地方,包括图形figure、坐标系Axes和坐标轴Axis。他们之间的关系如下图所示:

二 基本元素--primitives

1.2D-linse

2.patches

  • Rectangle-矩形
  • Polygon-多边形
  • Wedge-契形

3. collections

4.images

三 对象容器--Object container

  • Figure容器
  • Axis容器
  • Axes容器
  • Tick容器

四 思考题 

1.primitives 和 container的区别和联系是什么,分别用于控制可视化图表中的哪些要素?

primitives是具体画布中的某一个元素,像线条、矩形之列,是具体的图像。而container就是展示图像的地方,可以控制坐标轴,图像背景色,图像的显示等。两者相互配合可以使可视化的结果更易理解。

2.使用提供的drug数据集,对第一列yyyy和第二列state分组求和,画出下面折线图。PA加粗标黄,其他为灰色。
图标题和横纵坐标轴标题,以及线的文本暂不做要求。

data = pd.read_csv('../六月matplotlib-main/data/Drugs.csv')
data1 = data.groupby(['YYYY','State'])['DrugReports'].sum()
y1 = [data1[2010]['KY'],data1[2011]['KY'],data1[2012]['KY'],data1[2013]['KY'],data1[2014]['KY'],data1[2015]['KY'],data1[2016]['KY'],data1[2017]['KY']]
y2 = [data1[2010]['OH'],data1[2011]['OH'],data1[2012]['OH'],data1[2013]['OH'],data1[2014]['OH'],data1[2015]['OH'],data1[2016]['OH'],data1[2017]['OH']]
y3 = [data1[2010]['PA'],data1[2011]['PA'],data1[2012]['PA'],data1[2013]['PA'],data1[2014]['PA'],data1[2015]['PA'],data1[2016]['PA'],data1[2017]['PA']]
y4 = [data1[2010]['VA'],data1[2011]['VA'],data1[2012]['VA'],data1[2013]['VA'],data1[2014]['VA'],data1[2015]['VA'],data1[2016]['VA'],data1[2017]['VA']]
y5 = [data1[2010]['WV'],data1[2011]['WV'],data1[2012]['WV'],data1[2013]['WV'],data1[2014]['WV'],data1[2015]['WV'],data1[2016]['WV'],data1[2017]['WV']]
plt.figure(figsize=(10,8))
plt.plot(x1,y1,color='grey')
plt.plot(x1,y2,color='grey')
plt.plot(x1,y3,color='y',linewidth=5)
plt.plot(x1,y4,color='grey')
plt.plot(x1,y5,color='grey')
plt.grid()
plt.xlabel('Year')
plt.ylabel('DrugReports')
plt.show()

 3.分别用一组长方形柱和填充面积的方式模仿画出下图,函数 y = -1 * (x - 2) * (x - 8) +10 在区间[2,9]的积分面积。

x = np.linspace(0.5, 9.5, 1000) 
y = -1*(x-2)*(x-8)+10
x1 = np.linspace(2,9,50)
y1 =  -1*(x1-2)*(x1-8)+10
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(-0.5,10.5)
ax.set_ylim(0,20)
plt.plot(x, y, color = "r", alpha = 0.3,linewidth=3);
plt.bar(x1,y1,width=0.1,color='grey',alpha=0.5);

 

 

x = np.linspace(0.5, 9.5, 1000) 
y = -1*(x-2)*(x-8)+10
x2 = np.linspace(2, 9, 1000)
y2 = -1*(x2-2)*(x2-8)+10
y2[0] = 0
y2[-1] = 0
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(-0.5,10.5)
ax.set_ylim(0,20)
plt.plot(x, y, color = "r", alpha = 0.3,linewidth=3);
plt.fill(x2,y2,color='grey',alpha=0.2);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值