You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think adding support to plot to Smith Charts would be extremely beneficial to everyone working in RF/Microwave engineering.
It basically is a modified polar plot with a Mobius transform mapping complex numbers onto a polar plane.
There are several implementations across a few plotting backends: PGFPlots has it in LaTeX, PySmithChart and Matplotlib have it in Python, it's native in MATLAB, and InspectDR has it in Julia. But none of them implement interactability as well as the leading CAD software which utilizes Smith Charts in design work.
I think Plotly is perfect for this as it can provide a true cross-platform interactive means by which to visualize complex data for radio engineers.
I am more than happy to do a PR, I just need some guidance on how to start working on what is effectively a new axis type.
I would also like to see smith charts in plotly. I use plotly successfully for displaying engineering data and it would be great to provide a consistent experience to my users for this visualization as well.
I have implemented Smith Charts using Plotly for my own personal use. I would love to help add this feature to Plotly if possible. Here are some screenshots of what I've done.
One with increased resolution:
Reacted by Mojtaba Samimi, Josh Prewitt, Jack Parmer, rfriedma, Samuel Schüpbach, Val Hovey and Luciano's tech
@lstuemke - Awesome!!! @Gloamglozer and I are working on a PR. Would you like to join? This would be an excellent addition to Plotly and you seem to have a lot of the groundwork figured out.
Luke, jensb, and Samuel,
So far I've just sketched out the attributes of a smith datatype as per
the core developers advice. Still waiting on their feedback
Check out 'smith_api.md' in the root of the project here
https://github.com/Gloamglozer/plotly.js/tree/smith
If you guys are interested in being in the loop with the plot.ly guys, just
send me your emails and i'll get you guys in on the email chain so you can
see their thoughts.
In the meantime, if you just want to visualize your data you can always plot your mag/angle data using Plotly's Polar Charts. They won't have the Smith gridlines, but it could be a useful workaround before Smith is released.
I don't really have a pressing need for them right now, I just think it
would be cool to include them. I'm thinking of maybe using them in a
website down the road.
Concerning communication, maybe we can communicate with those guys over
GitHub, i know it has that KanBan function now, not sure if there's a good
chat function. There was talk of a Slack channel, it would be cool to have
some sort of project tracking with whatever we use.
I'll try and revive the issue with them after i'm off work today.
For now, here is the content of Nicholas Krutchen's email to me from a
while back:
------------------------------------------------------------------------------------------------------------
Hi folks! (moving Jack to bcc, adding Étienne even though he's on vacation)
I'm glad you're excited to contribute! This seems like a fun and
challenging problem indeed! Probably the best place to start would be a
call with someone on our Plotly.js team, and our tech-lead is on holiday
until the 27th, so it might be best to wait until he's back to kick things
off. I'm also cc'ing Alex, who has more experience than me in adding new
subplot types, in case he wants to chime in.
In terms of high-level guidance, I would say that you should be thinking
along the lines of adding two things to the library: a subplot type and a
trace type.
1. First of all a new subplot type called "smith", similar to how we
have a subplot type called "polar", so this means a set of objects in the
layout part of the schema to control and configure the subplot. This will
be the most challenging part, as you'll also need to design and implement
all of the interactions in terms of what happens when the user clicks and
drags in the plot: the zooming and panning interactions etc.
2. In tandem with that, you'll need a new kind of trace called
"scattersmith", similar to how we have "scatterpolar", which will draw
itself onto a given smith-type subplot. This means you'll be able to
have, say, 2 smith subplots in a figure, with each of them having 2
scattersmith traces on them, for a total of 4 traces i.e. 4 legend items.
If you can start studying how scatterpolar traces and polar subplots
interact, you'll get a sense of what's involved. We have a few different
types of subplots, each of which has a scatter-like trace that targets it,
and there is a lot of reuse across these components, which is both a
blessing and a curse: you get a lot for free, but you need to really grok
how things fit together.
I would recommend that once you've had a chance to study the
polar/scatterpolar pairing, you could write up a short proposal for what
the schema of attributes would look like for these new objects which we
could discuss on the call. I.e. once this is implemented, what would end up
in this page <https://plot.ly/javascript/reference/>, similar to the
scatterpolar <https://plot.ly/javascript/reference/#scatterpolar> and polar
<https://plot.ly/javascript/reference/#layout-polar> sections? This is
usually how we like to start major new projects: by designing the external
API first (usually keeping it as similar as possible to pre-existing
elements) and then seeing what can be reused and what net-new code needs
writing. This API proposal usually ends up guiding the test plan, as we'll
want to have tests for most or all of the API.
In terms of the workflow for contributing, a good starting point is
our contributing
guide, <https://github.com/plotly/plotly.js/blob/master/CONTRIBUTING.md> and
Mojtaba can maybe walk you through some pull requests that added new
trace-types <#2954> (which we do
reasonably often, we have about 40 now) and a new subplot-type
<#2200> (which is quite rare, as we
only have a handful) to give you a sense of what's needed here.
Cheers,
Nicolas
We are currently using plotly plots quite extensively in our application and are planning to use some sort of smith chart feature in the near future.
So it would be perfect if we could use a plotly smith chart as well.
Keep me up to date if I can help you contributing in some way.
As for the communication, a slack channel might atually be quite useful.
Cool! I will make sure you are in the conversation, we’ll take opinions on
how to collaborate in a Github issue maybe. Seeming like it makes sense to
consolidate effort as much as possible
On Wed, Apr 15, 2020 at 12:10 PM Samuel Schüpbach ***@***.***> wrote:
We are currently using plotly plots quite extensively in our application
and are planning to use some sort of smith chart feature in the near future.
So it would be perfect if we could use a plotly smith chart as well.
Keep me up to date if I can help you contributing in some way.
As for the communication, a slack channel might atually be quite useful.
Thank you for the updates.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4074 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFZA25MYUHJ2EOSWZ2Z6JBDRMXMA5ANCNFSM4IGEGMWA>
.
@lstuemke we're starting to work on this issue and I'm wondering if you're able and willing to share the code to the partial implementation you've got? :)
@archmoj@lstuemke Thank you both! I did find the reference, but I'm having a hard time reproducing e.g. when using smith_basic.json, I get this result:
I assume I'm probably making some beginner mistake though
Looks like you are using a version of plotly that doesn't have scattersmith implemented yet. Change your plotly reference to something like the following:
@lstuemke ,
In the samples you posted from your Smith Chart implementation it looks like the density of the gridlines changes in different regions of the chart. Is this still possible in the latest release? I'm looking to generate a Smith Chart similar to this:
The hover text in the samples also shows values as both impedance and normalized impedance. It looks as though the current release expects values to be normalized impedances. Is there a way to use impedances instead?
@Will-Focus,
Those screenshots were from before Smith was added to Plotly, which I made by hiding the gridlines in a plot and then manually adding a TON of traces in lieu of a grid (as a temporary workaround since it wasn't yet implemented in Plotly).
I ended up not contributing any code, so I cannot speak to what is officially supported. If you'd like, you can message me privately and I can share the Smith gridline math which allows for regions with varying grid density.
Activity
joshuaprewitt commentedon Sep 6, 2019
I agree that it would be really useful to have a smith chart, which can be used when analyzing RF waveforms.
https://cds.cern.ch/record/1417989/files/p95.pdf
rfriedma commentedon Sep 17, 2019
I would also like to see smith charts in plotly. I use plotly successfully for displaying engineering data and it would be great to provide a consistent experience to my users for this visualization as well.
etpinard commentedon Oct 2, 2019
Merged into #2221 - until this gets more traction.
lstuemke commentedon Nov 22, 2019
I have implemented Smith Charts using Plotly for my own personal use. I would love to help add this feature to Plotly if possible. Here are some screenshots of what I've done.
One with increased resolution:
activexray commentedon Nov 22, 2019
@lstuemke - Awesome!!! @Gloamglozer and I are working on a PR. Would you like to join? This would be an excellent addition to Plotly and you seem to have a lot of the groundwork figured out.
lstuemke commentedon Nov 22, 2019
Yeah absolutely, I'll help out any way I can.
jensb commentedon Mar 12, 2020
+1
I'd love to have this as well.
samuel-schuepbach commentedon Apr 15, 2020
Were you able to add this to plotly? This feature would be extremely helpful for us as well.
Thanks
Gloamglozer commentedon Apr 15, 2020
lstuemke commentedon Apr 15, 2020
@Gloamglozer , I would like to help out with this but not sure the best way to send you my email. I don't really want to post it here. Suggestions?
lstuemke commentedon Apr 15, 2020
In the meantime, if you just want to visualize your data you can always plot your mag/angle data using Plotly's Polar Charts. They won't have the Smith gridlines, but it could be a useful workaround before Smith is released.
Gloamglozer commentedon Apr 15, 2020
samuel-schuepbach commentedon Apr 15, 2020
We are currently using plotly plots quite extensively in our application and are planning to use some sort of smith chart feature in the near future.
So it would be perfect if we could use a plotly smith chart as well.
Keep me up to date if I can help you contributing in some way.
As for the communication, a slack channel might atually be quite useful.
Thank you for the updates.
Gloamglozer commentedon Apr 15, 2020
13 remaining items
mcdevitts commentedon Mar 1, 2021
Hey all. What's the status here? I'd also love to help out here. I plot s-parameters a lot, and I would love to have an interactive smith chart.
nicolaskruchten commentedon Mar 16, 2021
@lstuemke we're starting to work on this issue and I'm wondering if you're able and willing to share the code to the partial implementation you've got? :)
jackparmer commentedon May 1, 2021
There's a WIP PR here for anyone who would like to help review:
#5615
Hoping to have this in the June release of Plotly.js and Plotly.py.
0xCoto commentedon May 26, 2023
@Gloamglozer @lstuemke @rfriedma @samuel-schuepbach @jensb @kiranshila @ilPesce41 @nicolaskruchten
Hi all, any updates on the Smith chart implementation? I see a Python example here, but I haven't found anything for JS yet. 😕
archmoj commentedon May 26, 2023
@0xCoto Implemented in #5956. Please see examples in https://github.com/plotly/plotly.js/pull/5956/files under
test/imagemocks & baselines.lstuemke commentedon May 26, 2023
Here is a link to some of the documentation: https://plotly.com/javascript/reference/scattersmith/
Hope this helps!
0xCoto commentedon May 26, 2023
@archmoj @lstuemke Thank you both! I did find the reference, but I'm having a hard time reproducing e.g. when using
smith_basic.json, I get this result:I assume I'm probably making some beginner mistake though
lstuemke commentedon May 27, 2023
Looks like you are using a version of plotly that doesn't have scattersmith implemented yet. Change your plotly reference to something like the following:
<script src="https://cdn.plot.ly/plotly-2.20.0.min.js"></script>0xCoto commentedon May 27, 2023
That fixed it, thanks!
Will-Focus commentedon May 31, 2023
@lstuemke ,

In the samples you posted from your Smith Chart implementation it looks like the density of the gridlines changes in different regions of the chart. Is this still possible in the latest release? I'm looking to generate a Smith Chart similar to this:
The hover text in the samples also shows values as both impedance and normalized impedance. It looks as though the current release expects values to be normalized impedances. Is there a way to use impedances instead?
Thanks
lstuemke commentedon Jun 1, 2023
@Will-Focus,
Those screenshots were from before Smith was added to Plotly, which I made by hiding the gridlines in a plot and then manually adding a TON of traces in lieu of a grid (as a temporary workaround since it wasn't yet implemented in Plotly).
I ended up not contributing any code, so I cannot speak to what is officially supported. If you'd like, you can message me privately and I can share the Smith gridline math which allows for regions with varying grid density.
Thanks!