(一)刻度线定位器和刻度格式器的使用方法

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import AutoMinorLocator, MultipleLocator, FuncFormatter x = np.linspace(0.5, 3.5, 100)
y = np.sin(x) fig = plt.figure(figsize=(8, 8)) #生成8x8的画布
ax = fig.add_subplot(111) #向画布添加1行1列的子区,并且生成Axes实例ax ax.xaxis.set_major_locator(MultipleLocator(1.0))
'''ax.xaxis是ax的x轴实例,语句会在x轴的1倍处
分别设置主刻度线,其中参数MultipleLocator(1.0)
就是设置主刻度线的显示位置
'''
ax.yaxis.set_major_locator(MultipleLocator(1.0))
'''
次刻度线的显示位置,MultipleLocator(1.0)表示
将每一份主刻度线区间等分4份
'''
ax.xaxis.set_minor_locator(AutoMinorLocator(4)) ax.yaxis.set_minor_locator(AutoMinorLocator(4)) #函数是控制次要刻度线显示精度的
def minor_tick(x, pos):
if not x %1.0:
return ""
return "%.2f" % x ax.xaxis.set_minor_formatter(FuncFormatter(minor_tick))
#set_minor_formatter设置次刻度线精度,FuncFormatter(minor_tick)控制位置精度 ax.tick_params("y", which="major", length = 15, width=2.0, color="r")#刻度线样式的设置
ax.tick_params(which="manor", length = 5, width=1.0, labelsize=10, labelcolor="0.25") ax.set_xlim(0, 4)
ax.set_ylim(0, 2) ax.plot(x, y, c=(0.25, 0.25, 1.00), lw=2, zorder=10) ax.grid(linestyle="-", linewidth=0.5, color="r", zorder=0) plt.show()

(二)刻度标签和刻度线样式的定制化

import matplotlib.pyplot as plt
import numpy as np fig = plt.figure(facecolor=(1.0, 1.0, 0.9412))
ax = fig.add_axes([0.1, 0.4, 0.5, 0.5]) for ticklabel in ax.xaxis.get_ticklabels():
#ax.xaxis.get_ticklabels()是使用get_ticklabels()方法获得Text实例列表,用for循环遍历设置
ticklabel.set_color("slateblue")
ticklabel.set_fontsize(18)
ticklabel.set_rotation(30) for tickline in ax.yaxis.get_ticklines():
tickline.set_color("lightgreen")
tickline.set_markersize(20)
tickline.set_markeredgewidth(2)
plt.show()

(三)货币和时间序列样式的刻度标签

import matplotlib.pyplot as plt
import numpy as np
from calendar import month_name, day_name
#日期标签通过导入标准库calender中的day_name实现日期的刻度标签
from matplotlib.ticker import FormatStrFormatter
'''货币标签是通过FormatStrFormatter(r"$\yen%1.1f$")
作为参数值代入实例方法Axes.set_major_formmatter()中
实现格式化坐标轴标签,r"$\yen%1.1f$"是用来生成保留两位有效数字的人民币计量的刻度标签'''
fig = plt.figure()
ax = fig.add_axes([0.2, 0.2, 0.7, 0.7]) x = np.arange(1, 8, 1)
y = 2*x
ax.plot(x, y, ls="-", lw=2, color="orange", marker="o", ms=20, mfc="c",mec="c") ax.yaxis.set_major_formatter(FormatStrFormatter(r"$\yen%1.1f$")) plt.xticks(x, day_name[0:7], rotation =20) ax.set_xlim(0, 8)
ax.set_ylim(0, 18) plt.show()

(四)有指示注释与无指示注解(annotate)

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0.5, 3.5, 100)
y = np.sin(x) fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111) ax.plot(x, y, c="b", ls="--", lw=2) ax.annotate("maximum", xy=(np.pi/2, 1.0), xycoords="data",
xytext=((np.pi/2)+0.15, 0.8), textcoords="data",
weight="bold", color="r", arrowprops=dict(arrowstyle="->", connectionstyle="arc3",color="r"))
'''
有指示注释使用annotate函数,ax.annotate(str, xy, xycoords, xytext, textcoords, weight, color, arrowprops)
s------>注释内容
xy------>被解释内容的位置
xycoords------>xy的坐标系统,参数值“data”表示与折线图使用相同坐标系统
xytext-------->注释内容所在位置,如果是矩形,左下角所在位置
textcoords----->xytext的坐标系统
weight--------->注释内容的显示风格
color--------->注释内容的颜色
arrowprops---->指示箭头的属性,箭头风格,颜色等等
'''
ax.text(2.8, 0.4, "$y=\sin(x)$", fontsize=20, color="b",
bbox=dict(facecolor="y", alpha=.5))
#无指示注释
plt.show()

(五)圆角文本框的设置

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0.0, 10, 40)
y = np.random.randn(40) plt.plot(x, y, ls="-", lw=2, marker="o", ms=20, mfc="orange", alpha=.6) plt.grid(ls=":", color="gray", alpha=.5) plt.text(6, 0, "Matplotlib", size=30, rotation=30,
bbox=dict(boxstyle="round", ec="#8968CD", fc="#FFE1FF"))
#boxstyle="round"控制着圆角,还可改成square,circle等
plt.show()

(六)文本的水印效果

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0.0, 10, 40)
y = np.random.randn(40) plt.plot(x, y, ls="-", lw=2, marker="o", ms=20, mfc="orange", alpha=.6) plt.grid(ls=":", color="gray", alpha=.5) plt.text(1, 2, "Matplotlib", fontsize=50, color="gray",alpha=.5)
#水印通过alpha控制
plt.show

(七)圆角线框的有弧度指示注解

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0, 10, 2000)
y = np.sin(x)*np.cos(x) fig = plt.figure()
ax = fig.add_subplot(111) ax.plot(x, y, ls="-", lw=2) bbox = dict(boxstyle="round", fc="#7EC0EE", ec="#9B30FF")
arrowprops = dict(arrowstyle="-|>", connectionstyle="angle, angleA=0, angleB=45, rad=10", color="r")
#connectionstyle控制着箭头的走向
ax.annotate("single point", (5, np.sin(5)*np.cos(5)), xytext=(3, np.sin(3)*np.cos(3)),
fontsize=12, color = "r", bbox=bbox, arrowprops=arrowprops)
ax.grid(ls=":", color="gray", alpha=.5) plt.show()

(八)有箭头指示的趋势线

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0, 10, 2000)
y = np.sin(x) fig = plt.figure()
ax = fig.add_subplot(111) ax.plot(x, y, ls="-", lw=2)
ax.set_ylim(-1.5, 1.5) arrowprops = dict(arrowstyle="-|>", color="r")
#connectionstyle控制着箭头的走向
ax.annotate("", (3*np.pi/2, np.sin(3*np.pi/2)+0.5), xytext=(np.pi/2, np.sin(np.pi/2)+0.5),
color = "r", arrowprops=arrowprops)
ax.arrow(0.0, -0.4, np.pi/2, 1.2, head_width=0.05, head_length=0.1,
fc="g", ec="g")
#arrow(起点,xy增量,样式)
ax.grid(ls=":", color="gray", alpha=.5) plt.show()

matplotlib学习日记(九)-图形样式的更多相关文章

  1. matplotlib学习日记(四)-绘制直方统计图形

    (一)柱状图-应用在定性数据的可视化场景或者离散型数据,条形图和柱状图相似,只不过是函数barh import matplotlib as mpl import matplotlib.pyplot a ...

  2. matplotlib学习日记(三)------简单统计图

    (一)函数bar()---------绘制柱状图 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams[" ...

  3. matplotlib学习日记(一)------图表组成元素

      1.使用函数绘制matplotlib的图表组成元素 (1)函数plot---变量的变化趋势 import matplotlib.pyplot as plt import numpy as np x ...

  4. matplotlib学习日记(十)-划分画布的主要函数

    (1)函数subplot()绘制网格区域中的几何形状相同的子区布局 import matplotlib.pyplot as plt import numpy as np '''函数subplot的介绍 ...

  5. matplotlib学习日记(十)-共享绘图区域的坐标轴

    (1)共享单一绘图区域的坐标轴 ''' 上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域, 不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区 绘制多幅图形的目的. ...

  6. matplotlib学习日记(七)---误差棒图

    (一)误差棒图----误差置信区间的表示 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0.1, 0.6, 10 ...

  7. matplotlib学习日记(二)----图表组成练习

    ''' 将前面的知识进行练习 plot,scatter,legend等 ''' import matplotlib.pyplot as plt import numpy as np from matp ...

  8. matplotlib学习日记(十一)---坐标轴高阶应用

    (一)设置坐标轴的位置和展示形式 (1)向画布中任意位置添加任意数量的坐标轴 ''' 通过在画布的任意位置和区域,讲解设置坐标轴的位置和坐标轴的展示形式的实现方法, 与subplot,subplots ...

  9. matplotlib学习日记(八)----完善统计图

    (一)再说legend() import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 2.1, 0.1) y = np.p ...

随机推荐

  1. Java里的数组降序

    Java升序容易,降序不易. 基本类型不能降序,至少要是包装类. 升序使用Arrays.sort() 降序要么使用Collections.reverse,要么实现Comparator接口 import ...

  2. 使用Python切片赋值

    解释器下运行以下代码:list1 = [4,5,6,7,8,9] list1[2:5] = ['a','b','c']结果是:[4, 5, 'a', 'b', 'c', 9]

  3. 【MySQL/C#/.NET】VS2010报错--“.Net Framework Data Provider。可能没有安装。”

    前言 公司行业是金融软件,之前用的都是Oracle数据库.Oracle数据库用一个词来形容:大而全.MySQL的话,可能是因为开源.便宜,现在越来越主流. 我们也支持MySQL数据库,不过平时不用.最 ...

  4. 课时四:Action操作

    参考文档 瑞泰信息技术有限公司 微软MVP(15-18)罗勇 语义说明 核心名词 ​ FetchXML:是基于Xml的查询语言,可以把它简单理解成SQL语句,通过它可以查询Dynamics 365 C ...

  5. VMware Workstation Pro 16 官方正式版下载(含密钥)

    VMware官方网站 https://www.vmware.com VMware Workstation Pro已于近日更新.毫无疑问,这可能是Windows系统上最强大最好用的虚拟机! VMware ...

  6. 第7.23节 Python使用property函数定义属性简化属性访问的代码实现

    第7.23节 Python使用property函数定义属性简化属性访问的代码实现 一.    背景       在本章前面章节中,我们介绍了类相关的知识,并举例进行了说明,在这些例子中会定义一些形如 ...

  7. MapReduce简单执行过程及Wordcount案例

    MapReducer运行过程 以单词统计为案例. 假如现在文件中存在如下内容: aa bb aa cc dd aa 当然,这是小文件,如果文件大小较大时会将文件进行 "切片" ,此 ...

  8. 效率神器-uTools推荐和使用

    提高办公开发效率...非常好用  功能很多很全,官网:https://u.tools/ 文档:https://u.tools/docs/guide/about-uTools.html

  9. 华大MCU单片机之HC32F003/HC32F005 hc32f005_ddl_Rev1.9.0 Lite精简版库使用心得

    之前几个项目开发都是用的华大HC32F003_DDL_Rev1.0.2的库函数,今年刚开始入手华大,刚开始不是很了解这个芯片,看到库能用就上手了.这个版本的库编译效率很低,16K的芯片一下就写爆了.后 ...

  10. JavaScript一个一维数组变为两个一维数组

    //例如[1,2,3,4,5,6,7,8]变为[[1,2,3,4],[5,6,7,8]] var arr=[1,2,3,4,5,6,7,8]; function fixedArray(arr) { v ...