Matplotlib作业2
思考题
- primitives 和 container的区别和联系是什么?
primitives基本元素是容器中包含的元素,container是容器用来盛放primitives基本元素。
primitives中包含要绘制的基本元素:曲线、矩阵、图像、多边形、集合等;
container中包含了很多primitives基本元素,但同时也有自己的属性,是绘制的基础框架
- 四个容器的联系和区别是么?他们分别控制一张图表的哪些要素?
四个对象容器分别为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相关推荐
- Matplotlib作业3
作业 1. 墨尔本1981年至1990年的每月温度情况 请利用数据,画出如下的图: # 数据导入代码 # 导入包 import matplotlib.pyplot as plt import nump ...
- Matplotlib作业一
import matplotlib.pyplot as plt import numpy as np fig,ax = plt.subplots() # 包含axes的figure ax.plot([ ...
- matplotlib绘图_手把手教你使用Matplotlib绘图实战
点击上方"早起Python",关注并星标公众号 和我一起玩Python 大家好,昨天我们讲解了如何使用Matplotlib官方文档来绘制并调整我们想要的图,那么今天将使用真实数据来 ...
- 使用Matplotlib的条形图绘制一个颜色花哨的漏斗图
目录 前言 代码 效果 前言 前段时间作matplotlib作业要求画一个漏斗图,知乎上也有相关的代码,但是画出来的图在色彩上比较单调,因此就自己简单调整了一下代码,作为以后的参考吧. (之后才发现b ...
- 第8期Datawhale组队学习计划
第8期Datawhale组队学习计划马上就要开始啦 这次共组织15个组队学习,涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类,难度系数分为低.中.高三档,可以按照需要参加 ...
- Datawhale 暑期组队学习计划
Datawhale暑期组队学习计划 马上就要开始啦 这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低.中.高三档 可以按照需要参加 ...
- 高中体测数据可视化(体测分数_男生,体测分数-女生)
#1.对男1000米跑.男引体进行等宽分箱操作,分成3份,并使用饼图绘制百分比 import numpy as np import pandas as pd import matplotlib.py ...
- 【数据可视化】第三章——数据可视化综合实践
Matplotlib作业数据.csv文件查看百度网盘:链接:https://pan.baidu.com/s/1oFB_KwhiJNlJAgXg7RaYuw?pwd=abcd 提取码:abcd 1.作业 ...
- 李宁Matplotlib视频课程作业
作业1.编写一个Python程序,用Matplotlib绘制余切曲线. 编写内容如下: 运行后的结果如下: 作业2.编写一个Python程序,用Matplotlib在一个窗口显示两个坐标系,分别绘制一 ...
最新文章
- 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码?
- 利用位运算的模四算法
- jQuery 教程02-jQuery 语法
- 超级卷的卷烟厂,名校生争当操作工,做一天休一天
- python元祖推导式_python推导式深入讲解
- flask 蓝图 使用蓝图,增删改查用户
- android view 屏幕外,安卓如何让View往屏幕外隐藏?
- shell执行perl_TOOLFK工具-在线Perl代码执行工具
- 计算机在工程制图上的应用,浅析计算机软件在工程制图中的应用
- linux如何进入超级终端,使用telnet和超级终端登录控制Ubuntu
- SkeyePlayer rtsp、rtmp低延迟播放器源码解析之64位编译方案
- sublime出现中文乱码
- vue 弹框只出来一半,另一半白屏遮挡了
- IDEA破解教程(破解到2100年)的注意事项
- 人工神经网络通过调整,神经网络怎么调参数
- 一Flash从入门开发者放弃了成长之路
- JMS入门(一)--JMS基础
- 乌班图服务器账号密码忘了,如何在Ubuntu 20.04 LTS服务器中重置Sudo密码
- qq音乐登录参数详细分析及密码加密最新版
- Python爬虫的学习