当前位置: 首页 > news >正文

自助建站帮助网/百度下载免费官方安装

自助建站帮助网,百度下载免费官方安装,电子工程王力卓,做电子商务网站的意义介绍 本文不是一篇详尽的、从简到繁的 Maplotlib 画图教程,而是用各种例子快速直观地让读者上手 Matplotlib 画图中的一些常用的、基础的操作。本文不对各种数据图(折线图、柱状图等)作介绍。文中配有效果示意图及代码。本文亦可作常用画图函…

介绍

本文不是一篇详尽的、从简到繁的 Maplotlib 画图教程,而是用各种例子快速直观地让读者上手 Matplotlib 画图中的一些常用的、基础的操作。本文不对各种数据图(折线图、柱状图等)作介绍。文中配有效果示意图及代码。本文亦可作常用画图函数/参数查询之用。

PS:知乎的编辑器真是弱的可怜,建议去 CSDN 看:Matplotlib 常用画图命令总结:使用 Python 在论文中画出一手漂亮的数据图​blog.csdn.netv2-0cc655e03f215c99ed98dd992b6d54aa_ipico.jpg

什么样的数据图才是好的?

图之好坏不在繁简,一副好图,应该让读者能清晰明了地理解你想要表达的意思。所以在设计图的时候,此为第一要义。

检查你的数据图是否对色盲友好?(避免过多地使用红绿配色。)

如果打印成黑白稿(grayscale)的话,读者是否还能分辨出不同的元素?(避免仅使用颜色来区分元素,使用恰当、对比度高的颜色,以及 Marker、线的样式、粗细等)

图片的质量是否足够高?(PDF、EPS 等矢量图、分辨率高的 PNG、JPG )

标题、标签、刻度、图例是否正确,表达清楚?(最好不要仅使用数学符号来表示轴标签,例如

equation?tex=%5Calpha

equation?tex=%5Cbeta等,使用明确的文字来描述。)

使用的字体与正文是否一致?

基础知识

在介绍其他内容之前,我们先回顾一下基础知识,这里借用 Matplotlib 文档的一张图 [1]:

图中共标出了14种概念:Figure - 画板

Title - 标题

X axis label - X轴标签

Y axis label - Y轴标签

Legend - 图例

Major tick label - 主刻度标签

Minor tick label - 次刻度标签

Grid - 网格

Line (line plot) - 线

Markers (scatter plot) - 标记

Major tick - 主刻度

Minor tick - 次刻度

Axes - 轴

Spines - 脊

这些基础概念十分有用,希望大家能记住其作用及对应的英文。如果遇到更复杂的需求,可以直接在官网文档中进行查询。

环境Python 3.7.3

Matplotlib 3.1.3

常用链接

正文

开始画图

import matplotlib.pyplot as plt # 之后的代码默认引入此包

Figure 画板

创建一个简单的画板并展示

fig, ax = plt.subplots()

plt.show() # 之后的代码默认省略此步骤

设定画板的长宽figsize

fig, ax = plt.subplots(figsize=(12, 3))

设定子图

fig , ax = plt.subplots(nrows=3, ncols=5)

nrows和ncols参数分别为行数和列数。更复杂的例子请参考官网教程。

访问不同的字图

假设现在有三行五列:

ax[0, 4].plot(x, y, color='limegreen')

ax[2, 2].plot(x, y, color='red')

紧凑布局 Tight Layout

fig, ax = plt.subplots(tight_layout=True)

画板背景色

ax.set_facecolor('lightblue')

图中图 Inset

ax.plot(x, y, color='limegreen', label='Xovee')

inset = plt.axes((.5, .5, .3, .3), facecolor='lightblue')

inset.plot(x, y, color='red')

标签 Label

设定图片的轴标签、标题、字体颜色、字体大小plt.title()

plt.xlabel()、plt.ylabel()

plt.set_title()

ax.set_xlabel()、ax.set_ylabel()

ax.set_title("Xovee's Figure", fontsize=24, color='red')

ax.set_xlabel('Xovee', fontsize=20, color='lightblue')

ax.set_ylabel('Xovee', fontsize=20, color='coral')

轴 Axes/Axis

设定轴的范围

ax.set_xlim(np.pi, 3*np.pi)

ax.set_ylim(-.5, .5)

设定轴的缩放 Scale

可选项包括: - linear默认 - log - symlog - logit

fig, ax = plt.subplots(ncols=2, figsize=(8, 4), tight_layout=True)

x = np.linspace(0, 100, 1000)

y = [2**x_ for x_ in x]

ax[0].plot(x, y, color='limegreen', label='Xovee')

ax[1].plot(x, y, color='coral')

ax[1].set_yscale('log')

设定轴的上下界、粗细、颜色

ax.plot(x, y, color='limegreen', label='Xovee')

ax.set_yticks([-.5, 0., .5])

ax.set_xticks([2, 4, 6, 8])

ax.spines['top'].set_visible(False)

ax.spines['right'].set_visible(False)

ax.spines['left'].set_bounds(-.5, .5)

ax.spines['bottom'].set_bounds(2, 8)

ax.spines['bottom'].set_linewidth(2)

ax.spines['bottom'].set_color('red')

隐藏轴

hide_axes = ['left', 'top', 'right', 'bottom']

for axis in hide_axes:

ax.spines[axis].set_visible(False)

读者可以关注一下这个ax.spines,即轴的脊椎,将其可见度设为False:

设定右(上)坐标轴

ax.twinx(),同理可以设置上坐标轴ax.twiny()。

ax.plot(x, y, color='limegreen', label='Xovee')

axr = ax.twinx()

axr.set_yticks([.5])

axr.set_yticklabels(['Xovee'])

Tick 刻度

设置刻度的长、宽、颜色

# axis 默认是 both, 或者 x 和 y

# which 可以是 major, minor, both

ax.tick_params(axis='both', which='major', color='blue', length=10, width=3)

自定义刻度的位置和标签plt.xticks()、plt.yticks()

ax.set_xticks() 和 ax.set_xticklabels()

ax.set_yticks() 和 ax.set_yticklabels()

import matplotlib.pyplot as plt

import numpy as np

fig, ax = plt.subplots(tight_layout=True)

x = np.linspace(0, 4*np.pi, 100)

y = np.sin(x)

plt.plot(x, y, color='limegreen', label='Xovee')

plt.xticks([0, np.pi, 2*np.pi, 3*np.pi, 12], ['0.0', '$\pi$', '$2\pi$', '3$\pi$', '12'], fontsize=16, rotation=30, color='red')

plt.yticks([-1, 0, 1], fontsize=16, color='blue')

plt.show()

显示(隐藏)主/次刻度

右轴显示minor次刻度,下轴不显示minor次刻度。

ax.set_xticks([1e1, 1e2, 1e4], minor=True)

ax.set_yticks([1e-4, 1e-2, 1e0], minor=False)

Legend 图例

设定图例位置和文字大小

loc的可选参数包括best, lower, upper, center, left, right及其部分组合例如lower left。

plt.legend(loc='lower center', fontsize=24)

设定图例位置

bbox_to_anchor参数的四元组,以左下角为参照,设定图例的位置:

plt.legend(loc='lower left', bbox_to_anchor=(0, 1.05, .5, 1.05), fontsize=24)

多行多列图例、图例背景颜色

legend = plt.legend(loc='lower left', ncol=3, fontsize=16)

legend.get_frame().set_facecolor('linen')

网格 Grid

fig, ax = plt.subplots(ncols=3, tight_layout=True)

x = np.linspace(0, 4*np.pi, 100)

y = np.sin(x)

ax[0].plot(x, y, color='limegreen', label='Xovee')

ax[1].plot(x, y, color='red', label='Xovee')

ax[2].plot(x, y, color='blue', label='Xovee')

ax[0].grid(axis='x', linestyle='--')

ax[1].grid(axis='y', linewidth=5)

ax[2].grid(color='purple')

其他命令

减小生成的文件大小

添加rasterized=True参数。

plt.plot(x, y, rasterized=True)

plt.scatter(x, y, rasterized=True)

...

文字 Text

ax.text(2, 0, 'Xovee Xu is watching you!!!', fontsize=12, weight='bold', color='Coral')

设定字体

from matplotlib import rcParams

rcParams['font.family'] = 'Times New Roman'

使用 TrueType 字体(或避免 Type 3 字体)

第一种方法是更改配置文件,即默认之后所有的画图都使用 TrueType 字体:首先找到并修改`matplotlib`文件

如果你不知道该文件的位置,在 python 中输入以下命令 [2]

>>> import matplotlib

>>> matplotlib.matplotlib_fname()

'/home/foo/.config/matplotlib/matplotlibrc'

3. 修改以下两项即可 [3]

pdf.fonttype : 42

ps.fonttype : 42

第二种方法是在单个画图代码中使用如下命令:

import matplotlib

matplotlib.rcParams['pdf.fonttype'] = 42

matplotlib.rcParams['ps.fonttype'] = 42

设定层级 zorder

zorder高的元素显示在zorder低低元素之上。

ax[0].scatter([0], [2], s=1e5)

ax[0].scatter([0], [0], s=1e5, c='red')

ax[1].scatter([0], [2], s=1e5, zorder=5)

ax[1].scatter([0], [0], s=1e5, c='red', zorder=3)

透明 alpha

设定alpha参数,1为不透明,0为完全透明。

ax.scatter([0], [2], s=1e5, c='green', alpha=.5)

ax.scatter([0], [0], s=1e5, c='yellow', alpha=.5)

ax.scatter([-1], [1], s=3e4, c='red', zorder=0)

ax.scatter([1], [1], s=3e4, c='blue', alpha=1.)

设置颜色地图:例一 colormap

各种colormap颜色参考值可以在这里找到。

fig, ax = plt.subplots(tight_layout=True)

x = np.linspace(0, 4*np.pi, 100)

y = np.sin(x)

cmp = plt.cm.get_cmap('rainbow')

for i in range(len(x)-1):

plt.plot([x[i], x[i+1]], [y[i], y[i+1]], linewidth=5, color=cmp(x[i]/max(x)))

设置颜色地图:例二 colormap

ax.scatter(x, y, s=x**2, c=y, cmap='rainbow')

打印出系统中支持的字体名

import matplotlib.font_manager

a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in a:

print(i)

ReferenceCustomizing Matplotlib with style sheets and rcParams. (Apr 8, 2020). Retrieved from Customizing Matplotlib with style sheets and rcParams

Jamie Oaks. (Mar 1, 2014). Avoiding Type 3 fonts in matplotlib plots. Retrieved from Avoiding Type 3 fonts in matplotlib plots

http://www.lbrq.cn/news/1451359.html

相关文章:

  • 学做网站需要买什么书/北京seo服务销售
  • 建设企业网站公司机构官网/网络营销做的好的企业
  • 网络运维培训/宁波网站关键词优化排名
  • 做网站开发服务商/建网站要多少钱
  • 怎么找网站url地址/广东网络推广运营
  • raid管理网站开发/aso优化公司
  • 上海企业网站建站/人工智能培训心得体会
  • 鞍山制作网站/株洲seo优化报价
  • 网站建设跟推广评价指标有什么关系/网店代运营靠谱吗
  • 昌平电子网站建设/河北seo技术交流
  • wordpress全站静态化/百度一下首页问问
  • 网站转移空间备案是不是就没有了/三只松鼠的软文范例
  • 网站主页的要素/seo方案
  • otc场外交易网站开发/seo学徒
  • 新翼设计网站建设公司/成都网站关键词推广
  • 网站 建设 申请/北京网站seo费用
  • 网站怎样做免费优化有效果/乔拓云智能建站系统
  • wordpress menu 插件/147seo工具
  • 做特产的网站开张怎么宣传/软件开发公司排行榜
  • 网站维护 设计/广州网络优化最早的公司
  • 专门做各种产品测评的网站/网站权重划分
  • wordpress网站静态化/智能优化大师下载
  • 网站做优化的操作图片/广告代发平台
  • 网站建设找哪家好/怎样优化网站关键词排名靠前
  • 广州网站建设信科公司/seo是怎么优化上去
  • 瓯北网站建设/免费建一个自己的网站
  • 西安网站改版的公司/电子商务网站建设规划方案
  • 中国重庆网站建设/ks免费刷粉网站推广马上刷
  • 南宁定制网站建设/互联网推广销售是做什么的
  • 招聘网站报表怎么做/公司网站建设全包
  • k8s常见问题
  • 2.4- WPF中非 UI 线程上安全地更新 UI 控件方法
  • 【运维基础】Linux 硬盘分区管理
  • 【AI论文】Rep-MTL:释放表征级任务显著性在多任务学习中的潜力
  • trace-cmd记录线程被中断打断的时间
  • 腾讯人脸识别