前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python如何使用Matplotlib的作图

Python如何使用Matplotlib的作图

作者头像
Python研究者
发布于 2020-09-28 03:40:28
发布于 2020-09-28 03:40:28
1.4K00
代码可运行
举报
文章被收录于专栏:Python研究者Python研究者
运行总次数:0
代码可运行

Matplotlib官网 如果想了解更多可查看官网。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np 
import matplotlib.pyplot as plt
%matplotlib inline #写了这个就可以不用写plt.show()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号


X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)

plt.title("Hello World!!")
plt.plot(X,Y)
plt.plot(X,Y1)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
X = np.linspace(0, 2*np.pi,100)  
Y = np.sin(X)
Y1 = np.cos(X)
plt.subplot(211) # 等价于 subplot(2,1,1)  #一个图版画两个图
plt.plot(X,Y)

plt.subplot(212)
plt.plot(X,Y1,color = 'r')

柱状图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = [5,25,50,20]
plt.bar(range(len(data)),data)

水平绘制柱状图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = [5,25,50,20]
plt.barh(range(len(data)),data)

多个柱状图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4)

plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")
plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")
plt.bar(X + 0.50, data[2], color = 'r', width = 0.25,label = "C")

# 显示上面设置的 lable
plt.legend()

叠加型柱状图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4)

plt.bar(X, data[0], color = 'b', width = 0.25)
plt.bar(X, data[1], color = 'g', width = 0.25,bottom = data[0])
plt.bar(X, data[2], color = 'r', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))

plt.show()

散点图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
N = 50
x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y)

气泡图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randn(N) # 颜色可以用数值表示
area = np.pi * (15 * np.random.rand(N))**2  #  调整大小

plt.scatter(x, y, c=colors, alpha=0.5, s = area)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randint(0,2,size =50)
plt.scatter(x, y, c=colors, alpha=0.5,s = area)

直方图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.random.rand(100)
plt.hist(a,bins= 20)
plt.ylim(0,15)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = np.random.randn(10000)
plt.hist(a,bins=50)
plt.title("标准正太分布")

箱线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x = np.random.randint(20,100,size = (30,3))
plt.boxplot(x)
plt.ylim(0,120)
# 在x轴的什么位置填一个 label,我们这里制定在 123 位置,写上 ABC
plt.xticks([1,2,3],['A','B','C']) 

plt.hlines(y = np.median(x,axis = 0)[0] ,xmin =0,xmax=3)

添加文字描述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 设置画布颜色为 blue
fig, ax = plt.subplots(facecolor='blue')

# y 轴数据
data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4)

plt.bar(X+0.00, data[0], color = 'darkorange', width = 0.25,label = 'A')
plt.bar(X+0.25, data[1], color = 'steelblue', width = 0.25,label="B")
plt.bar(X+0.50, data[2], color = 'violet', width = 0.25,label = 'C')

ax.set_title("Figure 2")
plt.legend()

# 添加文字描述 方法一
W = [0.00,0.25,0.50]
for i in range(3):
    for a,b in zip(X+W[i],data[i]):
        plt.text(a,b,"%.0f"% b,ha="center",va= "bottom")
        
plt.xlabel("Group")
plt.ylabel("Num")
plt.text(0.0,48,"TEXT")

添加文字描述 方法二

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)

plt.plot(X,Y)
plt.plot(X,Y1)

plt.annotate('Points',
         xy=(1, np.sin(1)),
         xytext=(2, 0.5), fontsize=16,
         arrowprops=dict(arrowstyle="->"))

plt.title("这是一副测试图!")

多个图形描绘 subplots

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%pylab inline
pylab.rcParams['figure.figsize'] = (10, 6) # 调整图片大小

# np.random.seed(19680801)

n_bins = 10
x = np.random.randn(1000, 3)

fig, axes = plt.subplots(nrows=2, ncols=2) 
ax0, ax1, ax2, ax3 = axes.flatten()

colors = ['red', 'tan', 'lime']
ax0.hist(x, n_bins, normed=1, histtype='bar', color=colors, label=colors)
ax0.legend(prop={'size': 10})
ax0.set_title('bars with legend')

ax1.hist(x, n_bins, normed=1, histtype='bar', stacked=True)
ax1.set_title('stacked bar')

ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)
ax2.set_title('stack step (unfilled)')

# Make a multiple-histogram of data-sets with different length.
x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]
ax3.hist(x_multi, n_bins, histtype='bar')
ax3.set_title('different sample sizes')

使用Pandas 绘图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
df = pd.DataFrame(np.random.rand(50, 2), columns=['a', 'b'])
# 散点图
df.plot.scatter(x='a', y='b')
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
# 绘制柱状图
df.plot.bar()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 堆积的柱状图
df.plot.bar(stacked=True)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 水平的柱状图
df.plot.barh(stacked=True)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

# 直方图
df.plot.hist(bins=20)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 箱线图
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
df.plot.box()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫数据分析挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript网页性能优化(函数防抖与函数节流)
b.输入框事件:验证手机号或者邮箱,用户输入时不断触发键盘事件,应该等用户结束输入之后,以最后一次输入为准
帅的一麻皮
2020/05/16
1.5K0
JS函数节流和函数防抖
之所以返回一个函数,因为防抖本身更像是一个函数修饰,所以就做了一次函数柯里化。里面也用到了闭包,闭包的变量是timer。
用户1437675
2019/07/19
1.1K0
JavaScript 高频函数优化-函数防抖&函数节流
什么是高频函数? oninput(实时获取输入的数据) onscroll(监听页面的滚动) onresize(监听浏览器可视区域的变化) onmousemove(移动端监听手指在屏幕的滑动) 什么是函
前端小tips
2021/11/24
3860
JavaScript 高频函数优化-函数防抖&函数节流
javaScript 函数节流
什么是javascript函数节流?从其字面意思可以大概猜到是一种为提升函数调用执行性能的一种方法。javascript函数节流就是针对调用频率高的函数,通过设置定时器,使其在执行后间隔一段时间,才进行下一次的执行,避免重复频繁的调用导致的浏览器性能以及ajax重复调用问题。 函数节流的经典应用场景:onresize,scroll,mousemove ,mousehover等事件回调函数的无间断执行。其主要实现思路就是通过setTimeout定时器,通过设置缓冲时间,在第一次调用时,创建定时器,并在定时时间
用户1097444
2022/06/29
5100
javaScript 函数节流
javaScript 函数节流
IMWeb前端团队
2018/01/08
9610
javaScript 函数节流
彻底理清防抖(Debounce)和节流(Throttle)
前端有很多性能优化的方式,面对用户与网页的频繁交互,如输入框打字、按钮点击、滚动事件等,我们如何确保应用的响应既迅速又高效?
用户4396583
2024/09/30
5090
函数节流与函数防抖
函数节流与函数防抖的目的都是为了减少用户对服务器不必要的请求次数,以此提高服务器性能的函数。节流是在一段时间内,只向服务器请求一次。防抖则是在频繁触发相同请求时,若任务之间间隔小于指定时间,那么只会执行最后一次请求。
_kyle
2020/08/22
5530
节流函数和防抖函数的注意事项
关于防抖和节流函数的详细分析请看以下两篇文章,此处不再重述,本文章主要讲述运用过程中出现的问题
IT人一直在路上
2019/09/18
7530
函数节流
函数节流的定义: 规定的单位时间内只执行一次,如果在单位时间内执行了多次,那么最后也只会执行一次。
用户4344670
2020/06/28
6040
【JS】javaScript 函数节流
什么是javascript函数节流?从其字面意思可以大概猜到是一种为提升函数调用执行性能的一种方法。javascript函数节流就是针对调用频率高的函数,通过设置定时器,使其在执行后间隔一段时间,才进行下一次的执行,避免重复频繁的调用导致的浏览器性能以及ajax重复调用问题。
Ning@
2021/11/10
1.1K0
微信小程序 函数防抖和函数节流
函数节流是减少函数的触发频率;函数防抖是延迟函数执行,且不管触发多少次都只执行最后一次
peng_tianyu
2022/12/15
1.4K0
函数防抖与函数节流
有一些浏览器事件我们不希望它很频繁的触发,如调整窗口大小(onresize)、监听滚动条滚动(onscroll),如果这些监听事件需要调用接口的话一秒内可能会调用上百次,这样坑定是有问题的。
全栈程序员站长
2022/07/21
1990
简单复习下什么是JavaScript的防抖和节流
使用场景:click、onMouseOver,onMouseMove,resize,input,scroll等
前端达人
2021/06/16
5400
函数去抖(debounce)& 函数节流(throttle)总结
让某个函数在一定 事件间隔条件(去抖debounce) 或 时间间隔条件(节流throttle) 下才会去执行,避免快速多次执行函数(操作DOM,加载资源等等)给内存带来大量的消耗从而一定程度上降低性能问题。
全栈程序员站长
2022/09/06
3.4K0
函数去抖(debounce)& 函数节流(throttle)总结
大厂高频面试精选
key 的作用是为了在 diff 算法执行时更快的找到对应的节点,提高 diff 速度。
grain先森
2019/03/28
8560
大厂高频面试精选
JavaScript防抖节流
f1保存的是return function(){console.log(n)}这个匿名函数所在堆地址的引用,并不是赋值。
ymktchic
2022/01/18
5380
JavaScript防抖节流
js的函数节流、函数防抖及其使用场景
先说函数防抖,他的使用场景最多是在搜索时使用,比如百度的搜索,你在输入文字后的一段时间内开始自动搜索而不是每次按下键都执行一次搜索。因为如果每次按键都搜索,则会消耗大量的服务器资源。
OECOM
2020/07/02
8900
JS函数节流和防抖的区分和实现详解
在写JS时,这两个函数比较常见,有时候傻傻分不清用哪个,或者说知道代码要怎么写,但要说出它究竟是节流函数还是防抖函数时一脸楞逼。今天有一个同学分享了这两个的区分,我也来回顾一下,加深一下印象,以便日后用到时心里有底。PS:百度和谷歌搜索前几个介绍都是相反介绍,本文为原创,如有雷同纯属抄袭我的。
前端开发博客
2020/11/04
2K0
js防抖和节流实现
1. 防抖(debounce):触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间 举例:就好像在百度搜索时,每次输入之后都有联想词弹出,这个控制联想词的方法就不可能是输入框内容一改变就触发的,他一定是当你结束输入一段时间之后才会触发。  2.节流(throttle):高频事件触发,但在 n 秒内只会执行一次,所以节流会稀释函数的执行频率 举例:预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。就好像你在淘宝抢购某一件限量热卖商品时,你不断点刷新点购买,可是总有一段时间你点上是没有效果,这里就用到了节流,就是怕点的太快导致系统出现bug。
蓓蕾心晴
2022/08/19
6450
函数防抖和函数节流的简单实现和探讨
上面有个问题就是如果再场景2那种情况,用户提交数据请求是发不出去的。而且不停点击,请求就一直不发,这显然是不科学的,我们就要改进这个函数了。
ACK
2020/01/14
5810
相关推荐
JavaScript网页性能优化(函数防抖与函数节流)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档