When I choose "Middle" alignment for the labels for geographic fields, the labels don't really move.
Are labels "centered" already for geographic fields by default?
When I show labels for county fields and choose middle alignment, the labels don't move.
Screenshot from sample Superstore Data. Default label alignment is the same as middle alignment. Default label alignment also looks centered for states. It is harder to tell if labels are centered for smaller shapes such as counties.
yes the labels are centered by default for geographic fields. I agree that it is hard to tell for smaller shapes as well as for large countries that have a unique shape.
Related
Currently I'm working on a text rendering algorithm that samples pixels from a font atlas. The text is in a horizontal layout from left to right.
Since true type fonts support left & right bearing, it is possible that two glyphs can overlap horizontally. That means, that a horizontal pixel coordinate in the string can belong to either of the two overlapping glyphs. For example with the glyph combination "Ta" in many fonts (mostly cursive) the upper pixels in the overlapping area will belong to the T-bar while the lower pixels will belong to the left border of the a.
This would complicate the algorithm I'm developing, but it would still be fixable as long as one horizontal pixel coordinate belongs to two glyphs max.
Now my question:
Are there any fonts/languages where a horizontal pixel coordinate can belong to more than two glyphs (only horizontal text, not vertical)?
I am pretty sure that the answer is yes.
I recommend the accepted answer to RegEx match open tags except XHTML self-contained tags for a fun stress test of how badly messed up font rendering can become. (I recommend that answer anyways for its humor value.)
I would like to have a graph in amCharts where the x-axis is the time and bars represent in different colors and heights representing events in time. Now I would like to have that zoom-able so that captions in the bars only appear if there is enough space to display them.
In my example picture the caption is not displayed on the magenta bars:
:
I would try to do this with a date-based serial chart. You could try using a separate step line for each column with fillAlpha set to 1 or one step graph and use fillColorsField and set color in your data at a position where color should be changed. As for labels, it's more complicated - graph has hideLabelsCount property, but it will show/hide all labels once certain zoom level is reached. You could try employ labelFunction of a graph and usesome function which would set label to empty string, depending on zoom level.
When I look at different anchors within the same text having same position, here is what comes to my mind. How is it possible to change the text-anchor but move the text back to its position?
I thought this will be achieved by:
finding the BBOx before and after setting the anchor,
Find the distance between the center of two
shift it up or down with that distance value
It does not work that way meaning that the text does not break from the center of the BBox, then where does it break?
UPDATE: From SVG Documentation, I took this part out but did not really understand what it meant: For each glyph to be rendered, the SVG user agent determines an appropriate alignment-point on the glyph which will be placed exactly at the current text position. The alignment-point is determined based on glyph cell metrics in the glyph itself, the current inline-progression-direction and the glyph orientation relative to the inline-progression-direction. For most uses of Latin text (i.e., writing-mode:lr, text-anchor:start and alignment-baseline:baseline) the alignment-point in the glyph will be the intersection of left edge of the glyph cell (or some other glyph-specific x-axis coordinate indicating a left-side origin point) with the Latin baseline of the glyph.
Sorry for the bad title I don't really know how could I write it better. I want to create a colorpicker that's not very typical. There is the version where you can select the three vectors of HSB. It would be close to it but not at all. The main problem is why I don't use the usual colorpickers is that I have a very specific space to do it. I have 35 free objects that could be colored (these are filled circles with a black border) and not more. But I can place each object wherever I want. So how I imagine there would be a circle of 12-18 objects that are constats they would represent the HUE than when I select one the rest of the objects would be in the HUE circle and they would form a square. And why I call it tree: because you could select a color from the main circle than you get colors from that branch than you click on one of the colors in the got colors than you get colors from that color (but the clicked color is always part of the "zoomed" colors the best how you can imagine this like there is the HSB color space and in the first two clicks you select the HUE than you just zoom in the HSB color space than there is the two dimensional 101*101 S and B square and we zoom on the color. I really hope that you can understand me if not ask anything. And thank you for reading this long text.
Something like this:
The first, must know what is equation of HSB Color. The Algorithm to find this is in this with name HSV.
If you found, You can fill each color with choosen formula with hue you choosen and full saturation.
Add listener of click for that circle.
In listener, update the cicle inside with your choosen saturation and brighness. For example first row is sqaturation and brightness is column. Then in row 1 is no saturation, row 2 is half saturated(50) and row 3 is full saturated ones. The column 1 is the brightmost one(100) the 2 is half(50) and 3 is no brightness (0), for example.
Aclually it is not a tree, but a alternative approach for standard approach because it's more like that than tree.
I'm trying to apply readable labels to a D3 Streamgraph that is rendered using completely dynamic data - various different datasets that are evolving over time from live data and the controls offered to manipulate what is shown too. All this works well - the problem is how to clearly label the streams - short of using a legend.
The great variation of hues and luminance needed makes choosing readable styling for labels that float over the graph extremely tricky, particularly with the limited SVG styling available cross platform and that the labels will inevitably overlap on the background sometimes too. For instance black coloured labels 'work' but it's hard to read sometimes over the top of darker colours (which we really need to ensure a good range)...
Anyone done anything similar/addressed same challenge? I'm currently pondering using a legend instead.
A couple of ideas may help:
Add a background rectangle around the text with opacity set to 0.7 (the color being the same as the data series). This helps make the text pop. For the border of the rectangle, use d3js rgb.darker or rbg.brighter.
var pathStroke = d3.rgb( item.color ).darker(1.4).toString()
For preventing overlapping labels, I can think of two solutions - both hard. Use d3js Force Layout or write your own layout code. We ended up writing our own layout code for tooltips in d3-traits. See tooltips.js and layout.js.
d3.trait.layout.verticalAnchorLeftRight( foci, self.chartRect())
layout.js does have some general purpose and very flexible layout routines. It will layout rectangles within a bounding box avoiding overlap and determines if the labels need to be left or right justified. If the origins of the rects are toward the right edge of the bounding box, they are right justified.