所以我尝试用Plotly软件来制作XRD分析图,但是我发现了一个小问题……它是关于旋转文字在“标记+文字”模式在gog . scatter。下面是一些代码:
import plotly
import chart_studio.plotly
import plotly.graph_objects as go
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import plotly.express as px
import math
from plotly.subplots import make_subplots
AuBN_US = np.genfromtxt('somedatfile.dat')
AuBN_noUS = np.genfromtxt('otherdatafile.dat')
dataBN = pd.read_csv('somecsvfile.csv', sep=';')
dataAu = pd.read_csv('othercsvfile.csv', sep=';')
fig = make_subplots(rows=2, cols=1, y_title='Intensity', x_title="2\u03F4")
fig.add_trace(go.Scatter(x=AuBN_US[:,0], y=AuBN_US[:,1],
mode='lines',
name='AuBN_US'),
row=1, col=1)
fig.add_trace(go.Scatter(x=AuBN_noUS[:,0], y=AuBN_noUS[:,1],
mode='lines',
name='AuBN_noUS'),
row=2, col=1)
fig.add_trace(go.Scatter(x = dataBN['Angle'], y = dataBN['Int']+100,
mode='markers+text',
text=dataBN['hkl'],
textposition="top center",
name='BN',
orientation='v',
marker=dict(size=10, symbol="triangle-down")))
fig.add_trace(go.Scatter(x= dataAu['Angle'], y=dataAu['Int']+100,
name='Au',
mode='markers+text',
text=dataAu['hkl'],
textposition="top center",
orientation='v',
marker=dict(size=10, symbol="square")))
fig.update_layout(template="plotly_white", font=dict(family="Courier New,
monospace",
size=14,
color="black"))
fig.show()
得到这个结果 结果, 是否可以简单地旋转所有索引(100…)? 我已经尝试“textangle”,但总是得到错误。 问题来源StackOverflow 地址:/questions/59380055/how-to-rotate-text-plotly-in-markerstext-mod
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Plotly中,要旋转使用mode='markers text'
的文本标签,您需要使用textfont
属性中的rotation
参数来控制文本的角度。您的代码中没有直接体现这个参数的使用,这可能是导致尝试使用textangle
时遇到错误的原因。实际上,正确的参数名应该是嵌套在textfont
里面。
请参考以下修改后的代码段,我已添加了textfont=dict(rotation=45)
来旋转所有索引(如100等)文本45度作为示例:
fig.add_trace(go.Scatter(
x=dataBN['Angle'],
y=dataBN['Int']*100, # 注意这里的*100可能之前有误,确保这是您想要的操作
mode='markers text',
text=dataBN['hkl'],
textposition="top center",
name='BN',
orientation='v',
marker=dict(size=10, symbol="triangle-down"),
textfont=dict( # 添加这一行来控制文本旋转
rotation=45, # 这里是您想要的旋转角度
)
))
fig.add_trace(go.Scatter(
x=dataAu['Angle'],
y=dataAu['Int']*100, # 同样注意这里的操作
name='Au',
mode='markers text',
text=dataAu['hkl'],
textposition="top center",
orientation='v',
marker=dict(size=10, symbol="square"),
textfont=dict( # 对第二个trace也进行同样的设置
rotation=45,
)
))
这段修改应该能帮助您实现所需的文字旋转效果。记得根据实际情况调整旋转角度(这里以45度为例)。