思考题

  1. primitives 和 container的区别和联系是什么?

primitives基本元素是容器中包含的元素,container是容器用来盛放primitives基本元素。

primitives中包含要绘制的基本元素:曲线、矩阵、图像、多边形、集合等;

container中包含了很多primitives基本元素,但同时也有自己的属性,是绘制的基础框架

  1. 四个容器的联系和区别是么?他们分别控制一张图表的哪些要素?

四个对象容器分别为Figure容器,Axes容器,Axis容器,Tick容器。

按照管理范围的关系:Figure > Axes > Axis > Tick

Figrue:是Artist最顶层的container-对象容器,包含了图表中的所有元素;

Axes:大量用于绘图的Artist存放在它内部,是matplotlib的核心;

Axis容器:管理坐标轴;

Tick容器: 最末端的容器对象,包含tick、grid line实例以及对应的label;

绘图题

# 数据导入代码
# 导入包
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd# 导入数据集并转成方便作图的格式
Dataset = pd.read_csv('data/Drugs.csv')
print(Dataset.head())
group = Dataset.groupby(['YYYY', 'State']).agg('sum').reset_index()
print(group.head())
df = group.pivot(index='YYYY', columns='State', values='DrugReports').reset_index()
print(df.head())
   YYYY State           COUNTY  SubstanceName  DrugReports
0  2010    VA         ACCOMACK   Propoxyphene            1
1  2010    OH            ADAMS       Morphine            9
2  2010    PA            ADAMS      Methadone            2
3  2010    VA  ALEXANDRIA CITY         Heroin            5
4  2010    PA        ALLEGHENY  Hydromorphone            5YYYY State  DrugReports
0  2010    KY        10453
1  2010    OH        19707
2  2010    PA        19814
3  2010    VA         8685
4  2010    WV         2890
State  YYYY     KY     OH     PA     VA    WV
0      2010  10453  19707  19814   8685  2890
1      2011  10289  20330  19987   6749  3271
2      2012  10722  23145  19959   7831  3376
3      2013  11148  26846  20409  11675  4046
4      2014  11081  30860  24904   9037  3280
from matplotlib.lines import Line2D
fig = plt.figure(figsize=(10,8))
ax = fig.add_subplot(111)ax.patch.set_facecolor('#E9E9F1')
ax.plot(df.YYYY,df.KY,color='gray',linewidth=0.5)
ax.text(df.YYYY.values[-1],df.KY.values[-1],'KY',fontsize=8,color='gray')
ax.plot(df.YYYY,df.OH,color='gray',linewidth=0.5)
ax.text(df.YYYY.values[-1],df.OH.values[-1],'OH',fontsize=8,color='gray')
ax.plot(df.YYYY,df.PA,color='orange',linewidth=2)
ax.text(df.YYYY.values[-1],df.PA.values[-1],'PA',fontsize=8,color='orange')
ax.plot(df.YYYY,df.VA,color='gray',linewidth=0.5)
ax.text(df.YYYY.values[-1],df.VA.values[-1],'VA',fontsize=8,color='gray')
ax.plot(df.YYYY,df.WV,color='gray',linewidth=0.5)
ax.text(df.YYYY.values[-1],df.WV.values[-1],'WV',fontsize=8,color='gray')
ax.grid(color='#FFFFFF')
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.tick_params(bottom=False,right=False,left=False)
ax.set_xlabel("Year")
ax.set_ylabel("DrugReports")
ax.text(2009.7,49000,'Evolution of PA vs other states',color='orange',fontsize=8)
plt.show()

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
x = np.linspace(0,10,1000)
y = -(x-2)*(x-8)+10
ax1.set_xlim(-0.5,10.5)
ax1.set_ylim(0,20.0)
ax1.plot(x,y,color='red',linewidth=2)
x2 = np.linspace(2,9,1000)
y2 = -(x2-2)*(x2-8)+10
ax1.fill_between(x2,0,y2,facecolor='#D3D3D3')
<matplotlib.collections.PolyCollection at 0x7ffb1cb785e0>

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
x = np.linspace(0,10,1000)
y = -(x-2)*(x-8)+10
ax1.set_xlim(-0.5,10.5)
ax1.set_ylim(0,20.0)
ax1.plot(x,y,color='red',linewidth=2)
for i in np.arange(2,9,0.2):rect = plt.Rectangle((i,0),0.1,-(i-2)*(i-8)+10)rect.set_color('#D3D3D3')ax1.add_patch(rect)

Matplotlib作业2相关推荐

  1. Matplotlib作业3

    作业 1. 墨尔本1981年至1990年的每月温度情况 请利用数据,画出如下的图: # 数据导入代码 # 导入包 import matplotlib.pyplot as plt import nump ...

  2. Matplotlib作业一

    import matplotlib.pyplot as plt import numpy as np fig,ax = plt.subplots() # 包含axes的figure ax.plot([ ...

  3. matplotlib绘图_手把手教你使用Matplotlib绘图实战

    点击上方"早起Python",关注并星标公众号 和我一起玩Python 大家好,昨天我们讲解了如何使用Matplotlib官方文档来绘制并调整我们想要的图,那么今天将使用真实数据来 ...

  4. 使用Matplotlib的条形图绘制一个颜色花哨的漏斗图

    目录 前言 代码 效果 前言 前段时间作matplotlib作业要求画一个漏斗图,知乎上也有相关的代码,但是画出来的图在色彩上比较单调,因此就自己简单调整了一下代码,作为以后的参考吧. (之后才发现b ...

  5. 第8期Datawhale组队学习计划

    第8期Datawhale组队学习计划马上就要开始啦 这次共组织15个组队学习,涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类,难度系数分为低.中.高三档,可以按照需要参加 ...

  6. Datawhale 暑期组队学习计划

    Datawhale暑期组队学习计划 马上就要开始啦 这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低.中.高三档 可以按照需要参加 ...

  7. 高中体测数据可视化(体测分数_男生,体测分数-女生)

    #1.对男1000米跑.男引体进行等宽分箱操作,分成3份,并使用饼图绘制百分比 import numpy as  np import pandas as pd import matplotlib.py ...

  8. 【数据可视化】第三章——数据可视化综合实践

    Matplotlib作业数据.csv文件查看百度网盘:链接:https://pan.baidu.com/s/1oFB_KwhiJNlJAgXg7RaYuw?pwd=abcd 提取码:abcd 1.作业 ...

  9. 李宁Matplotlib视频课程作业

    作业1.编写一个Python程序,用Matplotlib绘制余切曲线. 编写内容如下: 运行后的结果如下: 作业2.编写一个Python程序,用Matplotlib在一个窗口显示两个坐标系,分别绘制一 ...

最新文章

  1. 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码?
  2. 利用位运算的模四算法
  3. jQuery 教程02-jQuery 语法
  4. 超级卷的卷烟厂,名校生争当操作工,做一天休一天
  5. python元祖推导式_python推导式深入讲解
  6. flask 蓝图 使用蓝图,增删改查用户
  7. android view 屏幕外,安卓如何让View往屏幕外隐藏?
  8. shell执行perl_TOOLFK工具-在线Perl代码执行工具
  9. 计算机在工程制图上的应用,浅析计算机软件在工程制图中的应用
  10. linux如何进入超级终端,使用telnet和超级终端登录控制Ubuntu
  11. SkeyePlayer rtsp、rtmp低延迟播放器源码解析之64位编译方案
  12. sublime出现中文乱码
  13. vue 弹框只出来一半,另一半白屏遮挡了
  14. IDEA破解教程(破解到2100年)的注意事项
  15. 人工神经网络通过调整,神经网络怎么调参数
  16. 一Flash从入门开发者放弃了成长之路
  17. JMS入门(一)--JMS基础
  18. 乌班图服务器账号密码忘了,如何在Ubuntu 20.04 LTS服务器中重置Sudo密码
  19. qq音乐登录参数详细分析及密码加密最新版
  20. Python爬虫的学习

热门文章

  1. cathome 猫家 开发日记-底部导航
  2. 【总结】实现点击累加效果的几种方式对比
  3. 【bzoj2929】[Poi1999]洞穴攀行 网络流最大流
  4. Android 图标上面添加提醒(二)使用开源UI类库 Viewbadger
  5. 什么是类加载,又有哪些类加载器你真的了解吗?
  6. 测试人员的系统性思维
  7. 方法的运用_运用正确管理方法缩减库存,助力企业发展
  8. 03-14 设备交互 API
  9. 数据库-MySQL中间的注释
  10. ggplot2 | ggplot2作图语法入门