坐标轴设置 axes

import plotly.io as pio
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
import numpy as np# 设置plotly默认主题
pio.templates.default = 'plotly_white'# 设置pandas打印时显示所有列
pd.set_option('display.max_columns', None)

update_xaxes / update_yaxes 常用参数介绍及示例

二者参数大同小异,因此以x轴作为示例说明。

官方示例:https://plotly.com/python/axes/

详细参数见:

  • https://plotly.com/python/reference/layout/xaxis/
  • https://plotly.com/python-api-reference/generated/plotly.graph_objects.layout.html?highlight=layout%20xaxis#plotly.graph_objects.layout.XAxis
  • https://plotly.com/python/reference/layout/yaxis/
  • https://plotly.com/python-api-reference/generated/plotly.graph_objects.layout.html?highlight=yaxis#plotly.graph_objects.layout.YAxis
  • type:设置坐标轴的类型。默认情况下,plotly会根据输入数据自动调整合适的类型。
    • 字符串枚举类型,可取 '-''linear''log'date''category''multicategory'
  • visible:是否显示坐标轴,默认为 True,当设置为 False 时隐藏坐标轴,但是依旧可以进行拖拽。
  • side:设置x轴(y轴)位于绘画区域的 底部(左侧)还是 顶部(右侧)
    • 字符串枚举类型,可取 'top''bottom''left''right'。注:x轴只可取 'top''bottom',同样,y轴只可取 'left''right'
  • zeroline:是否绘制零刻度线,如果为True,零刻度线将会在网格线最顶层绘制。
  • zerolinecolor:零刻度线的颜色。
    • 十六进制字符串,如 #ff0000
    • rgb/rgba 字符串,如 rgb(255,0,0)
    • hsl/hsla 字符串,如 hsl(0,100%,50%)
    • hsv/hsva 字符串,如 hsv(0,100%,100%)
    • CSS 颜色字符串,如 darkbluelightyellow
  • zerolinewidth:零刻度线的宽度。整数或浮点数(像素)。
  • showgrid:是否显示垂直于该坐标轴的网格线。默认为 True
  • gridcolor:垂直于该坐标轴的网格线的颜色。
  • gridwidth:垂直于该坐标轴的网格线的宽度。[0, inf] 之间的整数或浮点数
  • showline:是否显示坐标轴线。默认为 False
  • linecolor:坐标轴线的颜色。
  • linewidth:坐标轴线的宽度。[0, inf] 之间的整数或浮点数
  • title:设置坐标轴标题,字典类型,包含如下属性:
    • font:设置坐标轴标题的字体,字典类型,包含如下属性:

      • color:字体颜色
      • family:字体类型。字符串,可以为 ArialBaltoCourier NewDroid SansDroid SerifDroid Sans MonoGravitas OneOld Standard TTOpen SansOverpassPT Sans NarrowRalewayTimes New Roman
      • size:字体大小。大于等于1的整数。
    • text:设置标题内容,字符串类型。
    • standoff:设置坐标轴标题与刻度标签之间的距离。注意,轴标题总是被限制在绘画框内,因此实际的间距总是小于设定值或者默认值。但是可以将 automargin 设置为 True,此时 plotly.js 将会根据给定的 standoff 值自动调整边距。大于等于 0 的整数
  • automargin:是否让图边距适应标签长度(因为标签总是限制在边框内,此参数可以让边框自动适应标签的长度)。默认为 False
df = px.data.iris()print(df.head())fig = px.scatter(df, x='sepal_length', y='sepal_width',color='species_id', size='petal_length',
)fig.update_xaxes(type='linear',side='top',showgrid=False,title={'font': {'size': 18}, 'text': 'Sepal Length', 'standoff': 10},automargin=True,
)fig.update_yaxes(showline=True,linecolor='black',linewidth=3,gridwidth=2,title={'font': {'size': 18}, 'text': 'Sepal Width', 'standoff': 10},automargin=True,
)fig.write_image('../pic/axes_1.png', scale=10)
fig.show()

  • showticklabels:是否显示刻度标签,默认为 True
  • showtickprefix:如果为 'all',则所有的刻度标签都显示前缀;如果为 'first',则只有第一个刻度标签显示前缀;如果为 'last',则只有最后一个刻度标签显示前缀;如果为 None,则所有标签都不显示前缀。
    • 字符串枚举型,可取 'all'(默认值)、'first''last'None
  • showticksuffix:与 showtickprefix 一样,只是将前缀改为后缀。默认值为 'all'
  • tickprefix:设置刻度标签的前缀,字符串类型,默认为 空字符串 ""
  • ticksuffix:设置刻度标签的后缀,字符串类型,默认为 空字符串 ""
  • ticks:如果为空字符串 "",则不绘制刻度线,默认值;如果为 'outside',则绘制刻度线,且方向向图表外侧;如果为 'inside',则绘制刻度线,且方向向图表内侧。
    • 字符串枚举类型,可取 ""(默认值)、'outside''inside'
  • tickwidth:设置刻度线的宽度,大于等于0的整数,默认值为1
  • ticklen:设置刻度线的长度,大于等于0的整数,默认值为5
  • tickcolor:设置刻度线的颜色。
  • tickmode:设置刻度的模式。如果为 'auto',则根据 nticks 调整显示的刻度数;如果为 'linear',则刻度由起始位置 tick0,和步长 dtick 决定(如果 tick0dtick 都指定了,那么 tickmode的默认值变为 'linear');如果为 'array',则刻度由 tickvalsticktext 指定(如果 tickvals 指定了,那么 tickmode的默认值变为 'array'
  • nticks:设置最多显示多少刻度,会自动选择显示的刻度,实际值小于等于 nticks,只有 tickmode'auto' 时,才有效。大于等于0的整数。
  • tick0:设置此轴上第一个显示的刻度位置,搭配 dtick 共同使用。如果坐标轴的类型为 ‘log’,那么你传入的应该是取 ‘log’ 后的值;如果坐标轴类型为 ‘date’,那么传入的值也应该为日期字符串;如果坐标轴类型为 ‘category’,那么应该传入一个整数,从0开始,按出现顺序排列。
  • dtick:设置显示刻度的步长,搭配 tick0 共同使用。必须为一个正整数,或者一个字符串(当坐标轴类型为 ‘date’ 或 ‘log’ 时)。
  • tickvals:显示列表中出现的刻度。只有当 tickmode'array'时有效,与 ticktext 搭配使用。
    • 列表、numpy数组、pandas Series。值为数字、字符串或日期
  • ticktext:用于替换 tickvals 的刻度标签,与 tickvals 一一对应。例如 tickvals=[1, 2]ticktext=['a', 'b'] 那么坐标轴上 1 刻度位置的标签将显示 ‘a’,而不是1,类似的 2刻度显示的标签为 ‘b’。
    • 列表、numpy数组、pandas Series。值为数字、字符串或日期
  • tickfont:设置刻度标签的字体。字典类型,可用参数如下:
    • color:字体颜色
    • family:字体
    • size:字体大小
  • tickangle:刻度标签的水平倾斜角度。
fig = go.Figure()
fig = fig.set_subplots(rows=1, cols=2)fig.add_trace(go.Scatter(x=[1, 2, 3, 4], y=[4, 8, 6, 2]
), row=1, col=1)fig.add_trace(go.Bar(x=[1, 2, 3, 4], y=[4, 8, 6, 2], marker_color=['blue', 'yellow', 'blue', 'green']
), row=1, col=2)fig.update_layout(xaxis=dict(linecolor='green',ticks='inside',tickwidth=3,ticklen=10,tickcolor='red',tickmode='array',tickvals=[1, 2, 3, 4],ticktext=['A', 'B', 'C', 'D'],),yaxis=dict(tickmode='linear',tick0=2,dtick=3,),xaxis2=dict(linecolor='red',tickprefix='Eloik',tickfont={'size': 16, 'color': '#9fa0d7'},tickangle=-45,),yaxis2=dict(showticklabels=False,)
)fig.write_image('../pic/axes_2.png', scale=10)
fig.show()

  • autorange:是否根据输入数据自动调整坐标轴的范围。如果 range 指定了,那么 autorange 值变为 False

    • 可取 TrueFalse'reversed' (翻转坐标轴)
  • fixedrange:设置该坐标轴是否可以缩放,如果为 True,则不可以缩放,默认值为 False
  • range:设置该坐标轴的范围。如果坐标轴的类型为 ‘log’,那么你必须传入取过 ‘log’ 后的范围(例如:期望显示范围为[1, 100],那么在 log 坐标类型中,输入的值应该是 [0, 2]);如果坐标轴类型为 ‘date’,那么传入的范围也应该是日期字符串;如果坐标轴类型为 ‘category’,那么传入的范围应该是整数,从0开始,按出现的先后顺序递增。
    • 列表,两个值
  • rangemode:如果为 'normal',则坐标轴范围按照输入数据的极值进行计算;如果为 'tozero' ,无论输入数据的范围是多少,都会显示 0 刻度;如果为 nonnegative,无论输入数据如何,都只显示非负半轴。只有 ‘linear’ 类型的坐标轴才可以使用该参数。
  • tickformat:设置刻度标签的格式。对于数值型,见:https://github.com/d3/d3-format/tree/v1.4.5#d3-format;对于日期型,见:https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format。对于日期型额外添加了两个条目:%h表示半年,%{n}f 表示秒保留n位小数,例如 ‘2016-10-13 09:15:23.456’ 使用格式 ‘%H~%M~%S.%2f’ 将变为 ‘09~15~23.46’
  • exponentformat:设置刻度标签的指数显示规则。例如,考虑数字 1,000,000,000。如果为 None,则表现为 ,1,000,000,000;如果为 'e',表现为 1e+9;如果为 'E',表现为 1×1091×10^91×109;如果为 'power',表现为 1x10^9;如果为 'SI',表现为 1G,如果为 'B',表现为 1B
    • 可取 None'e''E''power''SI''B'
  • minexponent:为 10^n 隐藏 SI 前缀,如果 |n| 小于 minexponent。只有当 exponentformat'SI''B'时有效
  • separatethousands:是否使用千分隔,如果为 True,那么每四位数字会被分隔
fig = px.line(x=np.linspace(-10, 10, 100), y=(np.random.rand(100) - 0.5) * 200000)fig.update_layout(xaxis=dict(range=(-11, 11),tickformat='.2f',),yaxis=dict(exponentformat='power',)
)fig.write_image('../pic/axes_3.png', scale=10)
fig.show()

  • color:一次性设置坐标轴线、字体、刻度线和网格的颜色。网格的颜色会与背景混合而变浅。可以被指定的单个属性值覆盖。
  • mirror:决定是否将坐标轴 和(或)刻度镜像到绘图区域的另一侧。如果为 True,则坐标轴线被镜像;如果为 'ticks' ,则坐标轴线和刻度都被镜像;如果为 False,不使用镜像功能;如果为 'all',坐标轴线会在所有共享该坐标轴的子图上镜像;如果为 'allticks',坐标轴线和刻度会在所有共享该坐标轴的子图上镜像。
    • 可取 TrueFalse'ticks''all''allticks'
fig = px.line(x=['abcdefghijklmn', 2, 3, 4], y=[4, 8, 6, 2]
)fig.add_trace(go.Bar(x=['abcdefghijklmn', 2, 3, 4], y=[2, 6, 4 ,1]
))fig.update_layout(xaxis=dict(type='category',showline=True,linecolor='black',linewidth=2,mirror=True,color='#e60039',),yaxis=dict(showline=True,linecolor='black',linewidth=2,mirror=True,color='#e60039',),width=600, height=400,showlegend=False,
)fig.write_image('../pic/axes_4.png', scale=10)
fig.show()

  • tickson:设置刻度线和网格线相对于其对应的标签的绘画方式。只有坐标轴类型为 'category''multicategory' 时才有效。当设为 'boundaries'时,刻度线和网格线会显示在两个类别标签中间的位置。

    • 字符串枚举类型,可取:'labels'(默认值)、'boundaries'
  • ticklabelposition:设置刻度标签在坐标轴的哪里显示。注意 top 和 bottom 对 x轴 或 ticklabelmode='period'时无效,同样地,left 和 right 对 y轴 或 ticklabelmode='period' 时无效。当坐标轴类型为 ‘multicategory’ ,且 tickson='boundaries' 时无效。
    • 可取:'outside'(默认值)、'inside''outside top''inside top''outside left''inside left''outside right''inside right''outside bottom''inside bottom'
  • ticklabelmode:设置刻度标签显示位置的模式。只有坐标轴类型为 ‘date’ 时,'period'才有效,此时刻度标签会显示在两个刻度中间。
    • 可取 'instant'(默认值)、'period'
fig = px.line(x=['2001', '2002', '2003', '2004'], y=[4, 8, 6, 2]
)fig.add_trace(go.Bar(x=['2001', '2002', '2003', '2004'], y=[2, 6, 4 ,1]
))fig.update_layout(xaxis=dict(type='category',showgrid=True,tickson='boundaries',ticks='inside', tickwidth=3, ticklen=10,),yaxis=dict(showline=True,ticklabelposition='inside top',),width=600, height=400,showlegend=False,
)fig.write_image('../pic/axes_5.png', scale=10)
fig.show()

  • domain:设置坐标轴的域(长度)。[0, 1]之间的浮点数
  • categoryorder:设置类别标签的顺序。默认值为 'trace',即根据给定数据的先后顺序排列;取 'category ascending''category descending' 时,将按照标签名的字典序排列;取 'array' 时,将使用 categoryarray 的顺序进行排列,如果某个标签没有在 categoryarray 中出现,那么将更改为 'trace' 模式;取'total ascending''total descending' 时,将按照值的大小排序。
    • 可取 'trace''category ascending''category descending''array''total ascending''total descending''min ascending''min descending''max ascending''max descending''sum ascending''sum descending''mean ascending''mean descending''median ascending''median descending'
  • categoryarray:设置类别标签的排列顺序,只有 categoryorder='array' 时有效。
fig = px.line(x=['2001', '2002', '2003', '2004'], y=[4, 8, 6, 2]
)fig.add_trace(go.Bar(x=['2001', '2002', '2003', '2004'], y=[2, 6, 4 ,1]
))fig.update_layout(xaxis=dict(type='category',showgrid=True,categoryorder='array',categoryarray=['2003', '2002', '2001', '2004']),width=600, height=400,showlegend=False,
)fig.write_image('../pic/axes_6.png', scale=10)
fig.show()

  • rangeslider:在x轴下方添加一个滑动条,字典类型,可选属性如下:

    • autorange:是否根据输入数据自动调整范围,如果 range 给定,那么该参数自动变为 False
    • bgcolor:设置滑动条的背景颜色
    • bordercolor:设置滑动条边框的颜色
    • borderwidth:设置滑动条边框的宽度
    • range:设置滑动条的范围。如果坐标轴的类型为 ‘log’,那么你必须传入取过 ‘log’ 后的范围(例如:期望显示范围为[1, 100],那么在 log 坐标类型中,输入的值应该是 [0, 2]);如果坐标轴类型为 ‘date’,那么传入的范围也应该是日期字符串;如果坐标轴类型为 ‘category’,那么传入的范围应该是整数,从0开始,按出现的先后顺序递增。
    • thickness:设置滑动条的高度,[0, 1]之间的浮点数
    • visible:是否显示滑动条,如果设为 True,那么 y 轴将无法缩放,相当于 fixedrange=True
fig = px.line(x=np.linspace(-10, 10, 100), y=(np.random.rand(100) - 0.5) * 2)fig.update_layout(xaxis=dict(range=(-11, 11),rangeslider=dict(visible=True,bgcolor='#c5c5c5',bordercolor='#888888',borderwidth=2,))
)fig.write_image('../pic/axes_3.png', scale=10)
fig.show()

  • anchor:如果给定一个其他轴的id(例如 ‘x2’, ‘y’),这个坐标轴将会绑定到垂直于那个轴的坐标轴;如果为 free,那么该轴位置由 position 确定
  • position:设置坐标轴的位置,只有 anchor='free'时有效
    • [0, 1] 之间的浮点数
  • showspikes:当鼠标划过图中的数据点时,是否显示一条竖直的线。
  • spikecolor:竖直线的颜色
  • spikethickness:竖直线的宽度
  • spikedash:竖直线线条的样式
    • 可取 'solid''dot''dash''longdash''dashdot''longdashdot'
    • 或者一个 dash 长度列表,如:5px、10px、2px、2px
  • spikesnap:设置该竖直线什么时候显示。取'data'时,当鼠标靠近数据点时就会显示;取'cursor'时,只要鼠标放在图上就会显示;取'hovered data'时,当鼠标悬停在数据点时才会显示。
    • 可取 'data''cursor''hovered data'(默认值)
  • spikemode:设置竖直线的模式。如果为 'toaxis',竖直线从数据点开始向坐标轴方向显示,到达坐标轴停止;如果为 'across',竖直线将贯穿整个绘图区域;如何为 marker, 则在坐标轴上标记点。
    • 可取 'toaxis''across'marker,可以使用 + 组合这三个值
fig = px.line(x=[1, 2, 3, 4], y=[4, 8, 6, 2]
)fig.update_xaxes(rangemode='tozero',showspikes=True,spikemode='toaxis+marker',spikecolor='red',spikedash='longdash',spikesnap='data',spikethickness=5,position=0.2,anchor='free',
)fig.update_yaxes(rangemode='tozero',
)fig.show()

plotly 坐标轴(axes)设置相关推荐

  1. python坐标轴刻度设置_Python Matplotlib 设置x/y坐标轴刻度

    刻度设置 参考文档: xticks 命令 yticks 命令 以xticks为例: matplotlib.pyplot.xticks(args, *kwargs) 获取或者设置当前刻度位置和文本的 x ...

  2. plotly绘制简单图形<7>--用plotly画图参数设置

    用plotly画图 import plotly import plotly.graph_objs as go import plotly.offline as py  #设置离线画图 #设置第一坐标轴 ...

  3. MATLAB[2]:绘图坐标轴的设置

    MATLAB:绘图坐标轴的设置 1. 坐标轴基本操作 1.1 基本格式 1.2 常见用法 2. 刻度基本操作 3. 两侧坐标轴 1. 坐标轴基本操作 1.1 基本格式 %某轴的名称设置 xlabel( ...

  4. 【python学习】-matplotlib绘图如何将坐标轴刻度值设置为科学计数法形式

    如何将坐标轴刻度值设置为科学计数法形式 程序默认形式 对默认形式进行修改的形式一 形式二 程序默认形式 import numpy as np import matplotlib.pyplot as p ...

  5. origin柱状图坐标标签_经验-Origin做柱状图常遇问题-柱状图X坐标轴如何设置—小技巧...

    经验:Origin做柱状图常遇问题/柱状图X坐标轴如何设置-小技巧 对于每个搞科研的人来说,origin这个作图软件是必不可少的!但是,对于新手来说(我也算是半个新手*^__^*),它有时候显得有点高 ...

  6. ggplot2设置坐标轴范围_Matplotlib入门-2-坐标轴axis/axes设置

    这里并没有涵盖所有的的关于axis的设置方法,将一些常用的操作写出来,供大家学习使用.其余的一些高级操作,作为前期学习而言也没必要展示,用到的话,后续再补充. 学习前欢乐一下:这里有个Python界未 ...

  7. matlab axes标题,Matlab 坐标轴(axes),数据提示(data cursor),标题(title)等的默认字体问题...

    Matlab在ubuntu系统上面的默认字体很差.编辑器还能正常使用,但是画图以后,默认的坐标轴,title字体非常小,几乎看不清.用鼠标点出的data cursor字体更加看不清. 这些字体在 这里 ...

  8. python坐标轴刻度设置_学习python中matplotlib绘图设置坐标轴刻度、文本

    总结matplotlib绘图如何设置坐标轴刻度大小和刻度. 上代码: from pylab import * from matplotlib.ticker import MultipleLocator ...

  9. matlab 更换坐标轴_科学网—【Matlab】坐标轴的设置 - 叶瑞杰的博文

    使用matlab的绘图函数plot绘图时系统默认设置了一些属性,例如坐标轴字号大小等并根据情况自动设置坐标轴显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分. figure; %设置坐标轴 ...

最新文章

  1. 百度王海峰:多模态深度语义理解将让AI更深地理解真实世界
  2. ecplise 使用 git
  3. [YTU]_2570 指针练习——变量交换
  4. 最后一期:如何更新LSTM模型?(附代码)| 博士带你学LSTM
  5. File转化为MultipartFile
  6. hash一致性算法理解
  7. android+5.0+ble,android5.0(Lollipop) BLE Peripheral牛刀小试(示例代码)
  8. C++工作笔记-for与foreach之间的初步比较(反汇编初步窥探)
  9. ListView可拖拽item的原理
  10. Calib 工具说明
  11. Cygwin 安装使用
  12. MySQL数据库--韩顺平老师课
  13. java BigDecimal.ROUND_UP和BigDecimal.ROUND_DOWN的用处
  14. win32游戏开发(2) --连连看游戏制作(vc++版)
  15. 计算机网络读书笔记(一)
  16. 【Scheme 系列】对宏(macros)的恐惧
  17. 【树形结构】巴基斯坦城市列表 (城市原始数据来自md文件)
  18. 前端框架比比看:bootstrap, bulma, foundation, material-design-lite, materialize-css, semantic-ui
  19. 漫漫挨踢路,淡淡感想录
  20. 计算机等级考试excel试题,计算机等级考试试题及答案解析(Excel) -电脑资料

热门文章

  1. 用Excel获取数据——不仅仅只是打开表格
  2. MATLAB2018simulink打不开MATLAB2019b的simulink,低版本simulink模型出现
  3. 此beta版已额满_日志MIUI 11 第439周开发版内测日志补充
  4. 多摩川绝对值编码器CPLD FPGA通信源码(VHDL格式+协议+说明书)
  5. Python中使用BeautifulReport形成测试报告教程
  6. 链式前向星dij堆优化
  7. 如何快速制作微信旅游相册?简单操作,效果精美!
  8. 28岁女生转行前端晚吗?前景怎么样?
  9. 欧文分校的计算机科学博士,加州大学欧文分校
  10. Python下安装Pywifi进行WiFi密码破解