-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Support plotting to Smith Charts #4074
Comments
I agree that it would be really useful to have a smith chart, which can be used when analyzing RF waveforms. |
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. |
Merged into #2221 - until this gets more traction. |
@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. |
Yeah absolutely, I'll help out any way I can. |
+1 I'd love to have this as well. |
Were you able to add this to plotly? This feature would be extremely helpful for us as well. |
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.
…-- Eric
On Wed, Apr 15, 2020 at 10:44 AM Samuel Schüpbach ***@***.***> wrote:
Were you able to add this to plotly? This feature would be extremely
helpful for us as well.
Thanks
—
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/AFZA25JK7JUJGIZ4L3T5523RMXB4LANCNFSM4IGEGMWA>
.
--
--Eric Valentino
|
@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? |
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
On Wed, Apr 15, 2020 at 11:23 AM Luke Stuemke ***@***.***> wrote:
In the meantime, if you just want to visualize your data you can always
plot your mag/angle data using Plotly's Polar Charts
<https://plotly.com/javascript/polar-chart/>. They won't have the Smith
gridlines, but it could be a useful workaround before Smith is released.
[image: image]
<https://user-images.githubusercontent.com/49922901/79354954-13b1ab00-7f0b-11ea-9aa8-19e824e4cebf.png>
—
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/AFZA25IDF6EKHKQV5W2OEITRMXGOZANCNFSM4IGEGMWA>
.
--
--Eric Valentino
|
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. 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. |
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>
.
--
--Eric Valentino
|
@lstuemke @rfriedma @samuel-schuepbach @jensb @kiranshila @ilPesce41 @nicolaskruchten Made a slack for discussion of this here: Thinking we can just track progress using GithubProjects here: As initially suggested by @nicolaskruchten the next step is to sketch out the API for the new smith plot type. We should all have a look and agree on the setup of the API, then have a call with the plotly guys to make sure it looks good to them too and make sure what we're proposing will work well with everything else. After the API is done division of work will be a lot easier and we will all have the big picture in mind |
Hi @Gloamglozer, I'm sorry I haven't been able to respond to your email yet. I will try to get to it this week and get this train moving again! |
Hi Luke, |
This looks beautiful. I'd give it +j\infinity stars to be included. |
This totally fell off my radar @jensb. Let me get back in touch with @Gloamglozer and see where we're at. Edit: I'm not sure how to get in contact with any of you. Don't particularly want to post my email address here. @kiranshila, @Gloamglozer, do you have a method of communication setup for this project? |
Hey, was the smith chart ever incorporated into plotly? |
No, it looks like @ajundi had a good start. Adding smith charts was a big
ambitious for me not knowing JS (coming from C and Python), suggest he
makes a fork and PR, you can mention me in that fork
…On Tue, Nov 10, 2020 at 9:01 AM Vikram Sekar ***@***.***> wrote:
Hey, was the smith chart ever incorporated into plotly?
—
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/AFZA25KDEWHLI7PHIKVRCXTSPFBT3ANCNFSM4IGEGMWA>
.
--
--Eric Valentino
|
@ajundi that looks really amazing! If you want to submit a pull request so we can see how you did it, we'd be happy to review it and work towards getting it incorporated into Plotly! cc @alexcjohnson check this out! |
@nicolaskruchten - Hi Nicolas, it looks like @ajundi was just referencing my post to ask me a question. Anyway, I'd love to help get this incorporated into Plotly. |
@lstuemke right, my mistake, sorry! Either way, if we can get this into a PR we'd love to help. |
Exciting! I would love to see this in plotly. My lack of JS know-how may not help development, but if I can help in testing in python, please let me know. I'm writing a streamlit app to plot RF sparameter data, and plotly would be a prime plotting tool. Smith charts would be awesome obviously! |
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. |
@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? :) |
There's a WIP PR here for anyone who would like to help review: Hoping to have this in the June release of Plotly.js and Plotly.py. |
@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. 😕 |
@0xCoto Implemented in #5956. Please see examples in https://github.com/plotly/plotly.js/pull/5956/files under |
Here is a link to some of the documentation: https://plotly.com/javascript/reference/scattersmith/ Hope this helps! |
@archmoj @lstuemke Thank you both! I did find the reference, but I'm having a hard time reproducing e.g. when using I assume I'm probably making some beginner mistake though <!DOCTYPE html>
<html>
<head>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
<div id="myChart"></div>
<script>
var data = [
{
type: "scattersmith",
real: [0, 0, 1, 1, 2, 5, 10],
imag: [0, 1, 0, -2, -2, -5, -10],
mode: "lines+markers",
marker: {
size: 20,
opacity: 0.5
}
}
];
var layout = {
showlegend: false,
paper_bgcolor: "lightgray",
margin: {
t: 40,
b: 40,
r: 40,
l: 40
},
width: 800,
height: 800,
smith: {
realaxis: {
tickvals: [0.2, 0.4, 0.6, 0.8, 1, 1.5, 2, 3, 4, 5, 10, 20]
}
}
};
Plotly.newPlot("myChart", data, layout);
</script>
</body>
</html> |
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> |
That fixed it, thanks! |
@lstuemke , 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 |
@Will-Focus, 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! |
Hey everyone!
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.
The text was updated successfully, but these errors were encountered: