我正在尝试开发一款基于“五度循环”的游戏,这是一个音乐概念。为了使其正确,我将元素旋转了 15 度,以便圆的最顶部位于第一段的中间,而不是第一段的开头(您可能会说它旋转了 -15 度,但无论如何) 。
我现在面临的问题是我无法根据需要旋转圆段内的文本。每个段都是一个<g>带有子元素<path>和<text>嵌套在其中的子元素的元素。目前,我只是使用该rotate属性,这对于单个字符或 2 个字符来说是可以的,但除此之外,它看起来不正确。该属性的工作方式如下rotate所述(“旋转每个单独字形的方向。可以单独旋转字形。”)。我想旋转整个元素,以便所有字符都旋转到相同的角度,并且看起来呈现在同一条线上,垂直于字母的旋转。<text>
我尝试使用transform=rotate(15)和的组合text-anchor: middle而不是使用rotate属性,但看起来好像它也在 X 和 Y 坐标中移动元素。我也尝试过使用该dominant-baseline属性,但我的 VSCode 指出该属性不存在glyph-orientation-horizontal,并且该属性据我所知没有执行任何操作。
这是我的代码(我正在使用 Reactjs,所以我只是为您提供可以非常轻松地放入 App.js 中的组件代码以及组件的 CSS 代码(顺便说一句,有几行 D3,只是为了计算路径弧))以及一些屏幕截图,一张图像没有使用该rotate属性,另一张图像使用了该rotate属性。
组件和 CSS 代码:
// My component
import './CircleOfFifths.css';
import { useEffect, useState } from 'react';
import * as d3 from 'd3';
import musicKeys from '../../MusicKeys';
export default function …Run Code Online (Sandbox Code Playgroud) 在我的数据框中,我将每列的索引设置为“时间”,然后将frame = frame.astype(float)所有其他数据转换为浮点数。但是,我现在需要默认索引(0、1、2 等),但我仍然想将“时间”列设置为日期时间格式。我尝试了几种不同的方法来做到这一点,它们要么有效,但搞乱了时间(说是 1970 年而不是 2021 年),要么导致TypeError: Cannot cast DatetimeArray to dtype float64
这类似于我想要的数据框(但时间混乱):
Time Open High Low Close
0 1970-01-01 00:27:18.185760 57141.92 57157.16 57141.92 57147.00
1 1970-01-01 00:27:18.185820 57145.48 57149.15 57124.62 57139.75
2 1970-01-01 00:27:18.185880 57126.75 57173.11 57126.74 57142.20
3 1970-01-01 00:27:18.185940 57163.42 57163.42 57079.10 57135.31
4 1970-01-01 00:27:18.186000 57084.42 57110.00 57084.42 57092.95
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法更改“时间”列的格式:
frame['Time'] = pd.to_datetime(frame['Time'])
Run Code Online (Sandbox Code Playgroud)
和
frame['Time'] = frame['Time'].apply(pd.to_datetime)
Run Code Online (Sandbox Code Playgroud)
我也尝试以类似的方式更改其他列的类型
frame[['Open','High','Low','Close']] = frame[['Open','High','Low','Close']].apply(frame.astype(float))
Run Code Online (Sandbox Code Playgroud)
我在申请之前和之后尝试过这个pd.to_datetime
编辑
因为我还不够具体,所以要提供更多信息。下面的代码从 API 检索数据并将其放入 DataFrame 中。API 的响应是一个列表列表,每个子列表包含 10 …