python画图常规设置方式


Posted in Python onMarch 05, 2020

python绘图的包大家应该不会陌生,但是,对图的常规设置不一定会知道(其实自己也是才知道的),比如:坐标轴的字体大小、颜色设置;标题的字体颜色大小设置;线的粗细、颜色;图片风格的设置等。了解这些常规设置必定会让图片更加美观。

下面就具体来说说matplotlib中有哪些常规设置。

我主要总结了这几个函数:

plt.style.use()函数;可以对图片的整体风格进行设置。可以通过plt.style.availabel知道一共有多少种主题。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib as mpl
print plt.style.availabel

python画图常规设置方式

我们试用其中两个主题。

plt.style.use("fivethirtyeight")
data = np.random.randn(50)
plt.scatter(range(50), data)

python画图常规设置方式

with plt.style.context(('dark_background')):
  plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o') # "r-o"表示红色的点用线连接起来。
plt.show()

python画图常规设置方式

mpl.rcParams()函数;这个函数可以设置图片的坐标轴以及标题的字体大小、颜色、宽度等。同时,也可以用mpl.rcParams.keys()进行查看有哪些设置。

python画图常规设置方式

mpl.rcParams['xtick.labelsize'] = 16
mpl.rcParams["ytick.color"] = 'b'
plt.plot(range(50), data, 'g^')
plt.show()

python画图常规设置方式

这张图就通过rcParams()函数设置了y轴的字体颜色,x轴的字体大小。同时,将点的marker变成了三角形、颜色变为了绿色。

mpl.rc()函数;它可以用来设置线的粗细、风格、颜色等。

mpl.rc('lines', linewidth=4, color='r', linestyle='-.')
plt.plot(data)

python画图常规设置方式

fontdict()函数;也可以来办同样的事情。

font = {'family' : 'monospace',
    'weight' : 'bold',
    'size'  : 'larger',
    'color' : "r"
    }
plt.scatter(range(50), data)
plt.xlabel("number", fontdict=font)

python画图常规设置方式

font()字典中主要存在这么几类键:

font.family ;一共有5种设置: serif sans-serif cursive antasy monospace

font.style ;一种有3种设置:normal italic oblique

font.variant ;一共有2种设置:normal or small-caps

font.weight ;一共有4种设置:normal, bold, bolder, lighter

font.stretch ;一共有13种设置:

ultra-condensed, extra-condensed, condensed, semi-condensed, normal, semi-expanded, expanded, extra-expanded, ultra-expanded, wider, and narrower. font.size ;默认值是10pt

plt.setp()函数;也是可以设置线的粗细以及颜色,还可以设置坐标轴的方向,位置。

例如:

setp(lines, 'linewidth', 2, 'color', 'r')

借用帮助文档上的一个例子:

import numpy as np
import matplotlib.pyplot as plt
data = {'Barton LLC': 109438.50,
    'Frami, Hills and Schmidt': 103569.59,
    'Fritsch, Russel and Anderson': 112214.71,
    'Jerde-Hilpert': 112591.43,
    'Keeling LLC': 100934.30,
    'Koepp Ltd': 103660.54,
    'Kulas Inc': 137351.96,
    'Trantow-Barrows': 123381.38,
    'White-Trantow': 135841.99,
    'Will LLC': 104437.60}
group_data = list(data.values())
group_names = list(data.keys())
group_mean = np.mean(group_data)
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
    title='Company Revenue')

python画图常规设置方式

可以看到x轴坐标斜向45°旋转了,整个图片变得更加美观了。为了对数据更加一步分析,做下面操作:

python画图常规设置方式

def currency(x, pos):
  """The two args are the value and tick position"""
  if x >= 1e6:
    s = '${:1.1f}M'.format(x*1e-6)
  else:
    s = '${:1.0f}K'.format(x*1e-3)
  return s
formatter = FuncFormatter(currency)
fig, ax = plt.subplots(figsize=(6, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
 
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
    title='Company Revenue')
ax.xaxis.set_major_formatter(formatter)


fig, ax = plt.subplots(figsize=(8, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
 
# 以所有收益的平均值画一条垂直线,看哪些公司是超越平均收益的
ax.axvline(group_mean, ls='--', color='r')
 
# 标注新成立的公司
for group in [3, 5, 8]:
  ax.text(145000, group, "New Company", fontsize=10,
      verticalalignment="center")
 
# 将标题移动一点,与图片保持一点距离。
ax.title.set(y=1.05)
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
    title='Company Revenue')
ax.xaxis.set_major_formatter(formatter)
ax.set_xticks([0, 25e3, 50e3, 75e3, 100e3, 125e3])
plt.show()

python画图常规设置方式

现在好了,可以直观的看出哪些公司是新成立得,同时哪些公司的收益是超越平均水平的。对之后的数据分析和统计都是有非常大的帮助的。

以上这篇python画图常规设置方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
python+pygame简单画板实现代码实例
Dec 13 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
利用python如何在前程无忧高效投递简历
May 07 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
django中使用事务及接入支付宝支付功能
Sep 15 Python
如何利用Python识别图片中的文字
May 31 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
Django权限控制的使用
Jan 07 Python
python中使用np.delete()的实例方法
Feb 01 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 #Python
python入门之井字棋小游戏
Mar 05 #Python
解决Python图形界面中设置尺寸的问题
Mar 05 #Python
python实现简单井字棋小游戏
Mar 05 #Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
Mar 04 #Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 #Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 #Python
You might like
php传值方式和ajax的验证功能
2017/03/27 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
PHP分享图片的生成方法
2018/04/25 PHP
自写的一个jQuery圆角插件
2010/10/26 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
python实现抽奖小程序
2020/04/15 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
保时捷设计:Porsche Design
2019/03/30 全球购物
如何保障Web服务器安全
2014/05/05 面试题
医学生求职自荐信
2013/10/25 职场文书
医院财务人员岗位职责
2015/04/14 职场文书