Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(feat): marker upgrade for stock charts #20166

Open
wants to merge 4 commits into
base: v6
Choose a base branch
from
Open

(feat): marker upgrade for stock charts #20166

wants to merge 4 commits into from

Conversation

Ovilia
Copy link
Contributor

@Ovilia Ovilia commented Jul 16, 2024

Brief Information

This pull request is in the type of:

  • bug fixing
  • new feature
  • others

What does this PR do?

Enhance the ability of markerPoint so that we can do more for stock charts.

image

Fixed issues

#19578

Details

Before: What was the problem?

We can only set the position of markPoints according to the whole canvas, but not to the grid area in pixels.

After: How does it behave after the fixing?

With relativeTo: 'coordinate', we can set the position in pixels according to the grid area.

Document Info

New API: markPoint.data.relativeTo: 'screen' | 'coordinate'

One of the following should be checked.

  • This PR doesn't relate to document changes
  • The document should be updated later
  • The document changes have been made in apache/echarts-doc#xxx

Misc

ZRender Changes

  • This PR depends on ZRender changes (ecomfe/zrender#xxx).

Related test cases or examples to use the new APIs

N.A.

Others

Merging options

  • Please squash the commits into a single one when merging.

Other information

Copy link

echarts-bot bot commented Jul 16, 2024

Thanks for your contribution!
The community will review it ASAP. In the meanwhile, please checkout the coding standard and Wiki about How to make a pull request.

The pull request is marked to be PR: author is committer because you are a committer of this project.

⚠️ MISSING DOCUMENT INFO: Please make sure one of the document options are checked in this PR's description. Search "Document Info" in the description of this PR. This should be done either by the author or the reviewers of the PR.

@Ovilia Ovilia changed the base branch from master to v6 July 16, 2024 09:16
Copy link
Contributor

github-actions bot commented Jul 16, 2024

The changes brought by this PR can be previewed at: https://echarts.apache.org/examples/editor?version=PR-20166@0ac383d

@echarts-bot echarts-bot bot added the PR: awaiting doc Document changes is required for this PR. label Jul 25, 2024
Copy link

echarts-bot bot commented Jul 25, 2024

Document changes are required in this PR. Please also make a PR to apache/echarts-doc for document changes and update the issue id in the PR description. When the doc PR is merged, the maintainers will remove the PR: awaiting doc label.

@Ovilia Ovilia marked this pull request as ready for review July 25, 2024 11:38
@Ovilia Ovilia added this to the 6.0.0 milestone Jul 25, 2024
@@ -53,6 +53,7 @@ export interface MarkerPositionOption {
// Absolute position, px or percent string
x?: number | string
y?: number | string
relativeTo?: 'screen' | 'coordinate'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. I think that using screen might misleads users, because the the chart is just a part of a html webpage, and in CSS the screen already has some specific meaning (also doesn't refer to the real screen but the semantic is well-known).
    But I haven't come up with a perfect name yet.
    Some candidates:
  • viewport (also has specific meaning in HTML/CSS but better than screen?)
  • global (a more general term?)
  • global-container
  1. The term coordinate is a point in a coordinate system, rather than coordinate system itself.
    Should this option be coordinateSystem or coordinate-system, since the term coordinateSystem has been used in echarts option?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

global sounds good to me, only that it's an adj. instead of noun. In the case of relativeTo something, it may be better to follow with a noun. GPT suggests container and coordinateSystem and I think it's Okay. What do you think?

x: this.cx - radiusExtent[1],
y: this.cy - radiusExtent[1],
width: radiusExtent[1] * 2,
height: radiusExtent[1] * 2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we support r0 > r1? I tried it just now and it works.
It might be more robustness if take the max(radiusExtent[0], radiusExtent[1]) here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the contain (d2 <= r * r && d2 >= r0 * r0) assumes r0 <= r. If max(radiusExtent[0], radiusExtent[1]) is used here, maybe we should also change other places, or just assumes r0 <= r until other requirement.

@@ -146,6 +146,7 @@ export function dataTransform(
// x y is provided
if (item.coord == null || !isArray(dims)) {
item.coord = [];
item.value = numCalculate(data, data.mapDimension(dims[1]), item.type);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be

numCalculate(data, data.mapDimension(seriesModel.getBaseAxis()), item.type);

?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. Thanks for correction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants