热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonxycoords_python高级绘图图形坐标及刻度样式参数

刻度定位及刻度格式importmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlib.tickerimportAutoMinorLo

刻度定位及刻度格式

import matplotlib.pyplot as plt

import numpy as np

from matplotlib.ticker import AutoMinorLocator, MultipleLocator, FuncFormatter

x = np.linspace(0.1,5,100)

y = np.sin(x)

fig = plt.figure(figsize=(10,10))

ax = fig.add_subplot(111)

ax.xaxis.set_major_locator(MultipleLocator(1)) # 设置主刻度线位置

ax.yaxis.set_major_locator(MultipleLocator(1)) # 设置次刻度线位置

ax.xaxis.set_minor_locator(AutoMinorLocator(4)) # 设置主刻度线位置

ax.yaxis.set_minor_locator(AutoMinorLocator(4)) # 设置次刻度线位置

def minor_tick(x,pos):

if not x%1:

return ""

return "%.2f" %x

ax.xaxis.set_minor_formatter(FuncFormatter(minor_tick)) # 设置次要7

ax.tick_params('y',which='major', # 刻度样式 主

ax.grid(line" alt="" />

坐标轴刻度标签和刻度线样式调整

fig = plt.figure(facecolor=(1,1,0.9))

ax = fig.add_axes([.1,.4,.5,.5]) #生成Figure实例

for ticklabel in ax.xaxis.get_ticklabels(): #x轴实例 textlabel

ticklabel.set_color('slateblue')

ticklabel.set_fontsize(18)

ticklabel.set_rotation(30)

for tickline in ax.yaxis.get_ticklines(): #y轴实例 textline

tickline.set_color('lightgreen')

tickline.set_markersize(20)

tickline.set_markeredgewidth(2)

plt.show()

python高级绘图-图形坐标及刻度样式参数

设置坐标刻度标签为货币和时间

import matplotlib.pyplot as plt

import numpy as np

from calendar import month_name,day_name #日期标签

from matplotlib.ticker import FormatStrFormatter

fig = plt.figure()

ax = fig.add_axes([.2,.2,.7,.7])

x = np.arange(1,8,1)

y = np.exp(x)-0.3

ax.plot(x,y,ls='-',lw=2,color='orange',marker='o',ms=5,mfc='c',mec='c')

ax.yaxis.set_major_formatter(FormatStrFormatter(r'$\yen%1.1f/article>)) # Y轴主坐标标签

plt.xticks(x,day_name[0:7],rotation=20)

plt.show()

python高级绘图-图形坐标及刻度样式参数

添加数据注释

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

y = np.sin(x)

fig = plt.figure(figsize=(5,5))

ax =fig.add_subplot(111)

ax.plot(x,y,c='b',ls='-',lw=2)

ax.annotate('maximum', # 指向性注释 注释内容

xy=(np.pi/2,1), # 注释位置

xycoords='data', # 坐标系统,‘data’表示与直线图同坐标

xytext=((np.pi/2)+.15,.8), # 标记的左下角顶点位置

textcoords='data', # 标签坐标系统,同坐标

weight='bold', # 注释内容样式

color='r', # 注释颜色

arrowprops=dict(arrow" alt="" />

python高级绘图-图形坐标及刻度样式参数

注释文本样式调整

x = np.linspace(1,10,40)

y = np.random.randn(40)

plt.plot(x,y,ls='-',lw=2,

marker='o',

ms=10,

mfc='orange',

alpha=.5)

plt.grid(ls=':',color='gray',alpha=.5)

plt.text(6,0,'Text Label',size=20,rotation=30,

bbox=dict(box" alt="" />

python高级绘图-图形坐标及刻度样式参数

图片添加水印

plt.plot(x,y,ls='-',lw=2,

marker='o',

ms=10,

mfc='orange',

alpha=.6)

plt.grid(ls=':',color='gray',alpha=.5)

plt.text(1,1,'Text Label',fOntsize=30,color='gray',alpha=.5)

plt.show()

python高级绘图-图形坐标及刻度样式参数

曲线指示注释

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

y = np.sin(x)*np.cos(x)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(x,y,ls='-',lw=2)

bbox = dict(box>',

connection" alt="" />

python高级绘图-图形坐标及刻度样式参数

添加箭头趋势线

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)

arrowprops = dict(arrow>',color='r')

ax.annotate('',

(3*np.pi/2,np.sin(3*np.pi/2)+.05),

xytext=(np.pi/2,np.sin(np.pi/2)+.05),

color='r',

arrowprops=arrowprops)

ax.arrow(0,-.4, # 参数x,y

np.pi/2, # 参数x的水平增量

1.2, # 参数y的水平增量

head_" alt="" />

python高级绘图-图形坐标及刻度样式参数

箭头画桑基图

import matplotlib.pyplot as plt

import matplotlib as mpl

import numpy as np

from matplotlib.sankey import Sankey

flows = [.2,.1,.4,.3,-.6,-.05,-.15,-.2]

labels = ['','','','','family','trip','education','sport']

orientatiOns=[1,1,0,-1,1,-1,1,0]

sankey = Sankey()

sankey.add(flows=flows, # 正值表示流入,负值表示流出

labels=labels,

orientatiOns=orientations, # -1表示显示位置在下方,0表示水平,1表示上方

color='c',

fc='lightgreen',

patchlabel='life Cost',

alpha=.7)

diagrams = sankey.finish()

diagrams[0].texts[4].set_color('r') # labels标签样式

diagrams[0].texts[4].set_weight('bold')

diagrams[0].text.set_fontsize(20) # patchlabel标签样式

diagrams[0].text.set_fontweight('bold')

plt.title('Sankey Chart')

plt.show()

python高级绘图-图形坐标及刻度样式参数

标题和坐标轴投影

import matplotlib.pyplot as plt

import matplotlib.patheffects as pes

import numpy as np

x = np.linspace(.5,3.5,100)

y = np.sin(x)

fOntsize= 20

plt.plot(x,y,ls='--',lw=2)

title = '$y=\sin({x})/article>

xaxis_label = '$x\_axis/article>

yaxis_label = '$y\_axis/article>

title_text_obj = plt.title(title,fOntsize=fontsize,va='bottom')

xaxis_label_text_obj = plt.xlabel(xaxis_label,fOntsize=fontsize-3,alpha=1)

yaxis_label_text_obj = plt.ylabel(yaxis_label,fOntsize=fontsize-3,alpha=1)

title_text_obj.set_path_effects([pes.withSimplePatchShadow()])

pe = pes.withSimplePatchShadow(offset=(1,-1),shadow_rgbFace='r',alpha=.3)

xaxis_label_text_obj.set_path_effects([pe])

yaxis_label_text_obj.set_path_effects([pe])

# offset 文本投影偏离距离

# shadow_rgbFace 投影颜色

# alpha 投影透明度0~1

plt.show()

python高级绘图-图形坐标及刻度样式参数

坐标轴标签添加文本框

fig = plt.figure(figsize=(8,8))

ax = fig.add_subplot(111)

box = dict(facecolor='orange',pad=2,alpha=.4)

ax.plot(x,y,c='b',ls='--',lw=2)

title = '$y=\sin({x})/article>

xaxis_label = '$x\_axis/article>

yaxis_label = '$y\_axis/article>

ax.set_xlabel(xaxis_label,fOntsize=18,bbox=box) # bbox坐标轴标签文本框样式

ax.set_ylabel(yaxis_label,fOntsize=18,bbox=box)

ax.set_title(title,fOntsize=23,va='bottom')

ax.yaxis.set_label_coords(-.08,.5) # 坐标轴标签位置0~1,负值代表反方向

ax.xaxis.set_label_coords(1,-.05)

ax.grid(ls='-.',lw=1,color='gray',alpha=.5)

plt.show()

python高级绘图-图形坐标及刻度样式参数



推荐阅读
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
author-avatar
手机用户2602927805
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有