Skip to content

Commit

Permalink
fix: size & opacity
Browse files Browse the repository at this point in the history
  • Loading branch information
islxyqwe committed Oct 27, 2023
1 parent a3c90f9 commit a57f414
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ export const useSizeScale = (data: IRow[], field: IViewField | null | undefined,
if (isNaN(val)) {
return defaultSize;
}
const size = (val - domainMin) / (domainMax - domainMin);
return minSize + Math.sqrt(size) * (maxSize - minSize);
const percent = Math.max(Math.min((val - domainMin) / (domainMax - domainMin), 1), 0);
return minSize + Math.sqrt(percent) * (maxSize - minSize);
},
[key, domainMin, domainMax, minSize, maxSize, defaultAggregate]
);
Expand All @@ -219,8 +219,8 @@ export const useOpacityScale = (data: IRow[], field: IViewField | null | undefin
}, [field, defaultAggregate]);

const resolvedScale = useMemo(() => {
if (!field || !scaleConfig.size) return undefined;
return resolveScale(scaleConfig.size, field, data, 'light');
if (!field || !scaleConfig.opacity) return undefined;
return resolveScale(scaleConfig.opacity, field, data, 'light');
}, [scaleConfig, data, field]);

const [domainMin, domainMax] = useDomain(key, data, resolvedScale);
Expand All @@ -236,8 +236,8 @@ export const useOpacityScale = (data: IRow[], field: IViewField | null | undefin
if (isNaN(val)) {
return 0;
}
const size = (val - domainMin) / (domainMax - domainMin);
return minOpacity + size * (maxOpacity - minOpacity);
const percent = Math.max(Math.min((val - domainMin) / (domainMax - domainMin), 1), 0);
return minOpacity + percent * (maxOpacity - minOpacity);
},
[key, domainMin, domainMax, minOpacity, maxOpacity, defaultAggregate]
);
Expand Down
1 change: 1 addition & 0 deletions packages/graphic-walker/src/vis/spec/view.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ export function resolveScale<T extends Object>(scale: T | ((info: IFieldInfos) =
values,
});
}
return scale;
}

export function resolveScales(scale: IChannelScales, view: any, data: readonly IRow[], theme: 'dark' | 'light') {
Expand Down

0 comments on commit a57f414

Please sign in to comment.