matplotlib contourf colorbar放到下方_50题 讲透 matplotlib :从入门到精通

论坛 期权论坛     
选择匿名的用户   2021-5-22 16:19   64   0
<div class="._5ce-wx-style" style="font-size:16px;">
<div class="rich_media_content" id="js_content">
  <p>点击上方“Python编程时光”,选择“加为星标”</p>
  <p>第一时间关注Python技术干货!</p>
  <p><img alt="68c7e840804788bb1091eba9fa62b401.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-3379ea3f0a0c987123a406a1afd84815.png"></p>
  <p>Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,也可以和图形工具包一起使用。和Pandas、Numpy并成为数据分析三兄弟(我自己想的)。</p>
  <p>虽然相比之前介绍过的其他图形库(Seaborn | pyecharts | plotly | bokeh | pandas_profiling )这个库丑丑呆呆的,甚至有点难用,但人家毕竟是开山始祖,方法全,能够支持你各类骚操作的需求。可以说是现在python数据分析中,用的人最多的图形库了。</p>
  <p><img alt="ac037818ff030882b82c0c944f49ff45.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-c2aff53389215089da3f331d7cf001b8.png"></p>
  
  <h2><span style="font-weight:bold;">一、导入</span></h2>
  <p>1.导入matplotlib库简写为plt</p>
  <pre class="blockcode"><code>import matplotlib.pyplot as plt<br></code></pre>
  <h2><span style="font-weight:bold;">二、基本图表</span></h2>
  <p>2.用plot方法画出x&#61;(0,10)间sin的图像</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0, 10, 30)<br>plt.plot(x, np.sin(x));<br></code></pre>
  <p>3.用点加线的方式画出x&#61;(0,10)间sin的图像</p>
  <pre class="blockcode"><code>plt.plot(x, np.sin(x), &#39;-o&#39;);<br></code></pre>
  <p>4.用scatter方法画出x&#61;(0,10)间sin的点图像</p>
  <pre class="blockcode"><code>plt.scatter(x, np.sin(x));<br></code></pre>
  <p>5.用饼图的面积及颜色展示一组4维数据</p>
  <pre class="blockcode"><code>rng &#61; np.random.RandomState(0)<br>x &#61; rng.randn(100)<br>y &#61; rng.randn(100)<br>colors &#61; rng.rand(100)<br>sizes &#61; 1000 * rng.rand(100)<br><br>plt.scatter(x, y, c&#61;colors, s&#61;sizes, alpha&#61;0.3,<br>            cmap&#61;&#39;viridis&#39;)<br>plt.colorbar(); # 展示色阶<br></code></pre>
  <p>6.绘制一组误差为±0.8的数据的误差条图</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0, 10, 50)<br>dy &#61; 0.8<br>y &#61; np.sin(x) &#43; dy * np.random.randn(50)<br><br>plt.errorbar(x, y, yerr&#61;dy, fmt&#61;&#39;.k&#39;)<br></code></pre>
  <p>7.绘制一个柱状图</p>
  <pre class="blockcode"><code>x &#61; [1,2,3,4,5,6,7,8]<br>y &#61; [3,1,4,5,8,9,7,2]<br>label&#61;[&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;]<br><br>plt.bar(x,y,tick_label &#61; label);<br></code></pre>
  <p>8.绘制一个水平方向柱状图</p>
  <pre class="blockcode"><code>plt.barh(x,y,tick_label &#61; label);<br></code></pre>
  <p>9.绘制1000个随机值的直方图</p>
  <pre class="blockcode"><code>data &#61; np.random.randn(1000)<br>plt.hist(data);<br></code></pre>
  <p>10.设置直方图分30个bins,并设置为频率分布</p>
  <pre class="blockcode"><code>plt.hist(data, bins&#61;30,histtype&#61;&#39;stepfilled&#39;, density&#61;True)<br>plt.show();<br></code></pre>
  <p>11.在一张图中绘制3组不同的直方图,并设置透明度</p>
  <pre class="blockcode"><code>x1 &#61; np.random.normal(0, 0.8, 1000)<br>x2 &#61; np.random.normal(-2, 1, 1000)<br>x3 &#61; np.random.normal(3, 2, 1000)<br><br>kwargs &#61; dict(alpha&#61;0.3, bins&#61;40, density &#61; True)<br><br>plt.hist(x1, **kwargs);<br>plt.hist(x2, **kwargs);<br>plt.hist(x3, **kwargs);<br></code></pre>
  <p>12.绘制一张二维直方图</p>
  <pre class="blockcode"><code>mean &#61; [0, 0]<br>cov &#61; [[1, 1], [1, 2]]<br>x, y &#61; np.random.multivariate_normal(mean, cov, 10000).T<br>plt.hist2d(x, y, bins&#61;30);<br></code></pre>
  <p>13.绘制一张设置网格大小为30的六角形直方图</p>
  <pre class="blockcode"><code>plt.hexbin(x, y, gridsize&#61;30);<br></code></pre>
  <h2><span style="font-weight:bold;">三、自定义图表元素</span></h2>
  <p>14.绘制x&#61;(0,10)间sin的图像,设置线性为虚线</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0,10,100)<br>plt.plot(x,np.sin(x),&#39;--&#39;);<br></code></pre>
  <p>15设置y轴显示范围为(-1.5,1.5)</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0,10,100)<br>plt.plot(x, np.sin(x))<br>plt.ylim(-1.5, 1.5);<br></code></pre>
  <p>16.设置x,y轴标签variable x,value y</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0.05, 10, 100)<br>y &#61; np.sin(x)<br>plt.plot(x, y, label&#61;&#39;sin(x)&#39;)<br>plt.xlabel(&#39;variable x&#39;);<br>plt.ylabel(&#39;value y&#39;);<br></code></pre>
  <p>17.设置图表标题“三角函数”</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0.05, 10, 100)<br>y &#61; np.sin(x)<br>plt.plot(x, y, label&#61;&#39;sin(x)&#39;)<br>plt.title(&#39;三角函数&#39;);<br></code></pre>
  <p>18.显示网格</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0.05, 10, 100)<br>y &#61; np.sin(x)<br>plt.plot(x, y)<br>plt.grid()<br></code></pre>
  <p>19.绘制平行于x轴y&#61;0.8的水平参考线</p>
  <pre class="blockcode"><code>x &#61; np.linspace(0.05, 10, 100)<br>y &#6
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP