在作图中,我们需要根据自己的业务来更改x轴y轴的标签。
注意,坐标轴的修改已经不算做画图了,因为他不是图上的线条或轨迹(trace)了,所以用layout来设置。
1>显示或者不显示坐标轴标签。
fig.update_layout(
xaxis = dict(visible =False
)
)
# 或者
fig.update_layout(
xaxis_visible = False
)
2>设置标签颜色,这个颜色是总的,一下设置了包括标题,标签,刻度线等颜色,如果后面再单个设置比如字体的颜色的话,那这个就会被覆盖。
fig.update_layout(
xaxis = dict(color=#444,
)
)
3>轴标题参数:
fig.update_layout(
xaxis = dict(color=#444,
title=dict(
text='',# 标题的文字
font = dict(
family = '', # 字体 比如宋体
size = 10, # 标题大小
color = '', # 在此处可以只设置标题的颜色
)
standoff = 1, # 设置标题和标签的距离,大于等于0的数字,注意标题是不会超出页边的
)
)
)
4>标签的内容相关参数(第三种可以修改标签的值):标签有三种设定方式(且都是是绑定的):
第一种是给定标签的个数:
fig.update_layout(
xaxis = dict(tickmode='auto', # 选择了auto 那么就是说要用nticks 给定多少个标签。
nticks = 10, # 大于等于0的数,标签的个数
)
)
第二种是给定一个起点,然后给定一个步长
fig.update_layout(
xaxis = dict(tickmode='liner',
tick0 = 1, # 起点 数字 或者是坐标中的字符串
dtick = 1, # 步长 参数形式非常多,自行阅读官方文档吧,这里举个简单的例子
)
)
# `tick0` = 0.1, `dtick` = "L0.5" 将会展现出 0.1, 0.6, 1.1, 1.6 等等。
第三种是指定索引位置,然后指定值,位置和值一一对应
fig.update_layout(
xaxis = dict(tickmode='array', # 选择了array 那么就是说要用tickvals 和 ticktext组合了。
tickvals = [1,2,3], # 原标签值
ticktext = [2,3,4] # 最终显示的值 (替换的值)
)
)
5>plotly标签中文显示
df_data['date'] = df_data["date"].apply(lambda x: x.strftime("%Y{y}%m{m}%d{d}").format(y='年', m='月', d='日'))
# 但这样会显得日期很长,所以我一般用
df_data['date'] = df_data["date"].apply(lambda x: x.strftime("%Y{y}%m{m}%d{d}").format(y='.', m='.', d=''))
标签其他参数:
tickfont: # 标签的相关设置,有文字大小,颜色等参数,参照上边标题的设置。
tickangle : 标签的角度
ticks : # "outside" | "inside" | "", 标签画在轴的外侧还是内侧 或者是干脆就不画,也就是没有刻度线
tickcolor: # 刻度尺的颜色
ticklen: # 刻度尺长度
tickwidth : # 刻度尺宽度
type:标签的类型 有:"-" | "linear" | "log" | "date" | "category" | "multicategory"
autorange : True,False,reversed 三个参数 是否用给定的数据范围来确定x轴上标签的范围
range : 可以理解为数据的范围,如果上述给定的类型是date,那么就需要一个日期的范围
fixedrange : 布尔值, 是否固定轴上的标签。设置成True 在交互过程中,即使选中小的范围,轴标签依然不变
tip:例如当你的x轴是日期格式的时候,如果你不做任何处理那么plotly就会自动帮你转换成默认的一种英文格式,非常不利于我们观察。
采用的是d3规则,具体可查阅:d3/d3-time-formatgithub.com
看完这篇或许你可以解决你标签百分之90的问题,如果还有新的发现,请在评论区分享出来。
下篇要写标题了,有整幅画的标题,也有本篇讲过的轴的标题,还有图例(legend)的标题。
Let us do it!