Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Fix annotation autorange on category axes by etpinard · Pull Request #1791 · plotly/plotly.js · GitHub
Skip to content

Fix annotation autorange on category axes - #1791

Merged
etpinard merged 5 commits into
masterfrom
fix-category-autorange2
Jun 19, 2017
Merged

Fix annotation autorange on category axes#1791
etpinard merged 5 commits into
masterfrom
fix-category-autorange2

Conversation

@etpinard

Copy link
Copy Markdown
Contributor

fixes#1768 by making the category axes setConvert methods a bit more of a mess. Note that annotation autorange uses ax.r2c.

Oh well, with this patch here, it seems like all the cases are covered.

Together with #1748, we now have working category annotations on first draw and on pan/zoom 🎉 :

peek 2017-06-15 15-21

By the way @alexcjohnson I chose to add a new mock in f5c0382 instead of appending annotation-autorange.json to test shapes on category axes as well. I hope you don't mind.

- fixes annotations autorange
- does not appear to have any unwanted side-effects.
@etpinardetpinard added this to the 1.28.0 milestone Jun 15, 2017
@alexcjohnson

Copy link
Copy Markdown
Collaborator

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work. No problem about splitting off the mock - you're right to include both x and y, shapes and annotations (what about images?) - though at some point I feel like a bit of consolidation may be in order.

But did that mock fail before the patch? The coordinates that lead to the shape and annotations bumping out the autorange didn't come from category names. For annotations we can use a category that's already in the data and let the text box or arrow add extra pixel padding, for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

- same as what Axes.coercePosition does at the defaults step
for other axis types
- post #1748, we need to handle this at the ax.r2c as the categories
are only known after the calc step.
@etpinard

Copy link
Copy Markdown
ContributorAuthor

@alexcjohnson

Nice and simple, and this actually seems like it's the logical way for ax.r2c to work.

Great.

(what about images?)

Layout-image-induced autorange bumps aren't a thing ye (seet #1111) and the layout_image mock already has a category axis. But yeah, when #1111 will be completed, we should add an image or two to category-autorange.json.

But did that mock fail before the patch?

Oops, I messed that up when I added arrows to the mock. Fixed in -> e4aa7a3

for shapes it seems like we may need to use a category that's not in the data, so ax.categoryarray?

Good call here. That actually uncovered another bug. Done in -> aaf12ba

Bonus: annotations and shapes with invalid category coordinates were broken too. Fixed in -> 0758b3b

@alexcjohnson

Copy link
Copy Markdown
Collaborator

Beautiful. Gotta love it when all these extra edge cases pop out on fixing related issues.
💃

@etpinard
etpinard merged commit 1c38597 into masterJun 19, 2017
@etpinard
etpinard deleted the fix-category-autorange2 branch June 19, 2017 13:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugsomething broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation autorange on category axes

2 participants

@etpinard@alexcjohnson