如何在 Plotly Python 中的布局上使用 ttf 字体

问题描述 投票:0回答:1

我有一个 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")

如何指定要在图表中使用的本地字体文件,或者是否可以使用代码以某种方式设置字体。

python fonts plotly paas
1个回答
-2
投票

Plotly 默认情况下使用网络安全字体来渲染图表。但是,您可以通过在图表中指定 CSS 样式来使用自定义字体。要在 Plotly 图表中使用本地 TTF 文件作为自定义字体,您可以按照以下步骤操作:

  1. 上传TTF文件:

首先,您需要将字体文件上传到PaaS(铁路)服务器可访问的位置。您可以将 TTF 文件放在项目文件结构中的“assets”或“static”等目录中。

  1. 在 CSS 中定义字体:

创建引用字体文件的 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 文件的实际路径。

  1. 在图表中包含 CSS:

在您的代码中,包含您刚刚创建的 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>
  1. 在 Plotly 中设置字体系列:

现在可以通过 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 提供的默认网络安全字体。

© www.soinside.com 2019 - 2024. All rights reserved.