我有一个 ttf 文件,我需要将其用作使用 Plotly (Python) 创建的图表中的布局字体。我无法手动设置字体,因为图表是在 PaaS(铁路)上生成的,因此无法使用
fig.update_layout(font_family="Font Regular")
。
我尝试使用路径安装字体,但这会将字体更改为标准字体,而不是 ttf 文件中的字体(
fig.update_layout(font_family="assets/Font-Regular.ttf")
)。
我也尝试这样做answer,但它只会引发异常。
完整代码:
import plotly.express as px
df = pd.DataFrame({"date": date, "data": data})
fig = px.area(df, x='date', y="data")
fig.update_layout(font_family="assets/Font-Regular.ttf") # This line works incorrect
fig.write_image(f"images/{file_name}.png")
如何指定要在图表中使用的本地字体文件,或者是否可以使用代码以某种方式设置字体。
Plotly 默认情况下使用网络安全字体来渲染图表。但是,您可以通过在图表中指定 CSS 样式来使用自定义字体。要在 Plotly 图表中使用本地 TTF 文件作为自定义字体,您可以按照以下步骤操作:
首先,您需要将字体文件上传到PaaS(铁路)服务器可访问的位置。您可以将 TTF 文件放在项目文件结构中的“assets”或“static”等目录中。
创建引用字体文件的 CSS 文件(例如“custom_fonts.css”)。 CSS 文件应如下所示:
@font-face {
font-family: 'CustomFont';
src: url('path/to/your/Font-Regular.ttf') format('truetype');
}
将“path/to/your/Font-Regular.ttf”替换为项目中 TTF 文件的实际路径。
在您的代码中,包含您刚刚创建的 CSS 文件。确保在创建图表之前加载它。
例如,如果您使用 HTML 文件来呈现图表,请在 HTML 文件的部分中包含如下 CSS 文件:
<!DOCTYPE html>
<html>
<head>
<title>Your Chart</title>
<link rel="stylesheet" type="text/css" href="path/to/custom_fonts.css">
</head>
<body>
<!-- Your Plotly chart div goes here -->
<div id="your-chart"></div>
</body>
</html>
现在可以通过 CSS 使用自定义字体,您可以在 Plotly 图表中使用它。 在 JavaScript 代码中,您可以创建 Plotly 图表并设置字体属性以使用自定义字体:
// Assuming you have already imported Plotly and have your data and layout
set up
var config = {
responsive: true
};
var layout = {
// other layout properties
font: {
family: 'CustomFont, "Helvetica Neue", "Helvetica", "Arial", sans-serif'
}
};
// Create your Plotly chart
Plotly.newPlot('your-chart', data, layout, config);
将“CustomFont”替换为您在 CSS @font-face 声明中使用的名称。
这样,您的 Plotly 图表将使用您在 CSS 文件中指定的自定义字体。
请记住,某些平台可能对使用自定义字体有限制,因此您应该验证 PaaS(Railway)是否支持此方法来包含自定义字体。如果不允许使用自定义字体,您可能需要探索其他选项或使用 Plotly 提供的默认网络安全字体。