python坐标轴刻度设置_Python可视化:matplotlib的坐标轴和rc参数设置指南!_weixin_39585463的博客-程序员秘密

技术标签: python坐标轴刻度设置  

设置坐标轴 还记得上次画的那条“项链”嘛?结尾的时候有说过,这些是新手村礼包,还有很多其他值得探索的地方呢,那么就一起来康康还有哪些意想不到的操作吧(包括但不限于折线图哦,很多操作再其他图中也是可以运用哒!)

当我看到这样一副图的时候,心里有点点疑问,貌似和手绘的图有点不一样啊,到底哪里不一样呢,来个对比看一下。这是matplotlib绘制的y = x^2:

38dbb6fd5266d016d183da5c4e1a6f0134fa35e0.jpeg?token=b13ac0819c7f970883757589ec454365

这是本人亲手绘制的y = x^2:(本灵魂画手已上线,非战斗人员请撤离!不要太在意细节哈,忽视那个长的不太协调的x轴和弯弯曲曲如蚯蚓的抛物线,手残党表示真的尽力了,意会!意会哈!)

9345d688d43f8794800065080b2ab5f21ad53ad4.jpeg?token=be018f3c4ced3f516a1911c43ea045ee

正经的说,虽然都是y = x^2的图像,是不是感觉两幅图差异还蛮大的。 最明显的区别在于x轴和y轴的位置,绘制抛物线时我们习惯与y轴位于中间位置,所以在用matplotlib绘图时可以不可以改变坐标轴位置呢?答案当然时肯定的!

bd315c6034a85edffbb0599d9365b225dd54750c.png?token=845fb47878ed723d16c8bc0971b7f265

效果图如下:

0b46f21fbe096b6348109f41d5023c42ebf8ac4b.jpeg?token=96deebec9bbacd3fe02b34a5b393f5fd

这样看起来是不是和上边手绘的那一个图相似了很多?改变坐标轴的步骤在上边代码中注释部分写的很清楚啦,不再占篇幅赘述,其实就是把用不到的边框透明化,然后移动了另外两个边框作为x轴和y轴,其他刻度、标签以及图标等的设置在介绍折线图的时候都有介绍过。

rc参数设置 作为一个英语渣,能用中文的时候还是希望能用中文,然而当我在绘图的时候却发生了一点意外,喏,就是下边这副眼熟的图:

7af40ad162d9f2d3f643e37371dd31156227cc91.png?token=21827f541441bdb2b14e3f179d748970

b3119313b07eca80311472d84b122cdba14483b0.jpeg?token=7754f027d50b0c53e9d0b249628c10ce

和最开始的那幅图几乎一毛一样,只不过改了个标题,上边图的标题是“line”,我想改成“折线图”三个字,结果就变成这个样子了,原因在于原生的matplotlib是不支持中文显示的,所以需要进行rc参数的设置。

所谓rc参数,实际上修改是默认的属性,原来不支持中文,修改一下让它支持中文就可以了。 在这里还有一个小坑,那就是通过rc参数设置显示中文后,一些特殊符号比如负号显示会出现问题,这里不再用具体的例子引出这个小坑了,我们顺手给它一起解决掉,节省点篇幅(实际是我有点懒233)

解决方案很简单,两行代码搞定:

plt.rcParams['font.sans-serif']=['Simhei'] #显示中文

plt.rcParams['axes.unicode_minus']=False #显示负号再运行上边的代码看下效果:

7aec54e736d12f2e6c60827a96f36e648535687f.jpeg?token=90df81cc69a7cd4dc2bb144407ede5d2

中文和负号都正常显示啦! rc参数的设置到这里就结束了嘛?实际上常用的rc参数设置就是这两行没错,然而还有需要提醒的一点,记下来,要考的!rc参数修改的是全局默认属性,也就是说,这个参数一旦设置,后续进行的所有操作都会受到rc参数的影响!

这也是进行一次设置,全篇画图函数都可以正常显示中文和负号的原因。而rc参数还可以进行诸如线条宽度,标记点尺寸等等的各种设置,这些设置对于每个画图函数来说几乎都有相对应的参数进行单独设置,完全没有必要在rc参数中对全篇进行限制,所以如非必要,最好不要通过rc参数进行除了显示中文和符号外的其他设置。

同一幅图中绘制多条折线 其实折线图一个很重要的应用是查看事务随着时间的发展所呈现出来的趋势,有时候我们想要查看不同的指标在同一段时间内的变化趋势,就需要在一副图中绘制多条折线,这种需求要怎样实现呢? 实际上原理很简单,那就是创建一个画布后,在同一块画布中重复绘制就可以了:

dcc451da81cb39db0a4bd9930827b222aa183020.png?token=f81a16e1b8928302c4e2642e2b0b9791

效果图:

ac6eddc451da81cb1246acfd8b576b1009243111.png?token=7faed8e50f8f8e1880fa7ca75c2039e8

这是一段时间内股票价格的数据,截取了时间作为x轴数据,开盘价,最高价,最低价,收盘价为y轴数据绘制的折线图,能够看出这一段时间内股票价格的走势还是比较平稳的。

温馨提示:在同一块画布中可以重复绘图,仔细观察会发现,红色线条在其他线条图层的上方,即后绘制的图会覆盖前边绘制的图,所以,在绘制图形时要注意,例如饼图这种,需要同时展现好几块饼的情况,不能采用这种绘图方式,而是需要创建子图,进行多图展示!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39585463/article/details/110026369

智能推荐

CentOS7 启动报错 Centos 7: kernel panic-not syncing_centos kernel panic_dok12的博客-程序员秘密

昨天在vmware 虚拟机安装了CentOS 7,在yum install,makecache,update 还没有完全结束就power off 结果今天就开不了系统了。第三行显示了原因kernel panic-not syncing:VFS。。。。内核更新出问题了。只有rescue core 的system 可以用。比较简单的解决方法就是到了启动页按下行选择rescue选项的那一...

jasperreports java web报表_JasperReports学习笔记4-查询数据库生成动态的报表(WEB)..._吴羽舒的博客-程序员秘密

12importjava.io.IOException;3importjava.io.InputStream;4importjava.sql.Connection;5importjava.sql.DriverManager;6importjava.sql.ResultSet;7importjava.sql.SQLException;8importjava.sql.Statement...

UVA10763:Foreign Exchange(交换学生)_蒟蒻CCA的博客-程序员秘密

作者:xq的acm之路题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1704题目大意:有n(1<=n<=500000)个学生想交换到其他学校学习。A到B学校的前提是找到一个B到A的搭档。n个学生两两两交换就ok,A,B用两个整数表示思路:(A,B

新闻文本分类Task1_token_pattern=r'\w{1,}_不怎么会写代码的博客-程序员秘密

新闻文本分类Task1赛题理解赛题名称:零基础入门NLP之新闻文本分类赛题目标:通过这道赛题可以引导大家走入自然语言处理的世界,带大家接触NLP的预处理、模型构建和模型训练等知识点。赛题任务:赛题以自然语言处理为背景,要求选手对新闻文本进行分类,这是一个典型的字符识别问题。学习目标理解赛题背景与赛题数据完成赛题报名和数据下载,理解赛题的解题思路赛题数据赛题以匿名处理后的新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出14个候选

关于S7-PLCSIM Advanced搭建仿真通讯环境_plcsimadvanced安装和问题处理_言午许少的博客-程序员秘密

那种方式是基于TIA + PLCSIM +NetToPLCSIM实现功能,涉及到的软件有点多,而且只能模拟S7通信,对于其他的通信,就不适用了。那么,有没有一种方式,可以用最少的软件,仿真出最多的通信呢?答案是有的,今天来给大家分享一个软件及其使用方法,即S7-PLCSIM Advanced,S7-PLCSIM Advanced是SIEMENS推出的一款高功能仿真器,它的显著特点是除了可以仿真一般的PLC逻辑控制程序外还可以仿真通信,功能是非常强大的,今天主要讲述如何基于S7-PLCSIM Advanced

c语言 文件名变量,C语言中,如何用根据不同的变量来更改文件名?_东东嘿的博客-程序员秘密

C语言中,如何用根据不同的变量来更改文件名?來源:互聯網2009-07-10 01:37:33評論分類: 電腦/網絡 &gt;&gt; 程序設計 &gt;&gt; 其他編程語言問題描述:请教一个问题:C语言中,如何用根据不同的变量来更改文件名?比方说:如果m=1,Sb_t=0,Pb_t=0.05,Ag_t=0.00,H=3;那么文件名就叫"E-log[Cl] Sb(0.00)Pb(0.05...

随便推点

android专项测试 方案,Android性能专项测试.pdf_Benjamin Jordan的博客-程序员秘密

目录前言battery-historian试用MemoryMonitor工具HeapViewer工具AllocationTracker(DeviceMonitor)AllocationTracker(AndroidStudio)HeapSnapshot工具TraceView工具(DeviceMonitor)Android性能专项测试之MATSystrace工具Android性能专项测试之GPUMo...

conda创建python虚拟环境_黄埔数据分析的博客-程序员秘密

conda创建python虚拟环境conda常用命令conda list 查看安装了哪些包。conda env list 或 conda info -e 查看当前存在哪些虚拟环境conda update conda 检查更新当前conda创建虚拟环境conda create -n 虚拟环境名 python=3.6激活虚拟环境linux:source activate your_env_name(虚拟环境名称)windows:activate your_env_name(虚拟环境名称)

冈萨雷斯数字图像处理_Dandelion_2的博客-程序员秘密

源代码 http://fourier.eng.hmc.edu/e161/dipum/图像:http://imageprocessingplace.com/DIP-3E/dip3e_book_images_downloads.htm

【密码学】Miller-Rabin素性检测(C++代码实现)_米勒拉宾素性检验c语言_Mitch311的博客-程序员秘密

#include &lt;NTL/ZZ.h&gt;#include&lt;iostream&gt;using namespace std;using namespace NTL;//n为素数候选者,x为随机数long witness(const ZZ&amp; n, const ZZ&amp; x) { ZZ d, y, z; long j, s; if (x == 0) return 0; //计算s,d,使得n-1 = 2^s * d...

Anaconda+conda创建python虚拟环境_Kevinhang的博客-程序员秘密

Anaconda与conda区别        conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身 Anaconda则是一个打包的集合,里面预装好了con

Node-Red之创建一个简单的Node_wujiayucn的博客-程序员秘密

创建一个简单的Node,可以将输入的数据转换成小写。初始化一个npm 项目执行命令npm init执行过程:# wjy @ qifang in ~/gitProjects/node-red-dev [21:49:17]$ npm initThis utility will walk you through creating a package.json file.It only covers the most common items, and tries to guess sensi

推荐文章

热门文章

相关标签