When plotting several hv.Curves using the bokeh backend, when clicking on a legend entry, the corresponding curve gets muted, i.e., its alpha is set to 0.5, so it becomes semi-transpared and, thus, it loses highlight when compared to the unmuted ones.
I've followed the tutorial in the "Working with time series" section of holoviews' user guide on Working with large data and applied holoviews.operation.datashader.rasterize on a hv.Curve, but I'm unable to get the same legend behavior as described above for regular hv.Curves. In fact, I can't even get holoviews to show an entry for the rasterized curve in the legend.
I think I've read in some github issue (can't find the ref now...) that this is somehow related to the fact that rasterize returns some sort of Image object (maybe gv.Image?).
So, the question would be, how does one go about showing a legend entry for a rasterized curve?
Related
I am trying to find a way to have a dynamic plot (for the moment I use plotly) in which if you keep the mouse over a certain point it is calling a routine which is showing something, e.g. a photo that is referring to that specific data point. An example is to have the MNIST data-set clustered in 2 dimensions (e.g. using t-SNE) and when you go over the points with the pointer you see the actual digit which stays for that point.
Source of image : https://math.stackexchange.com/questions/144268/is-there-a-name-for-this-type-of-plot-function-on-complex-plane-vs-time-shown
I had in one of my lectures a graph of how sin, cos and exp are related in complex domain with a figure that close to that one. I searched on-line a lot until I found that picture on Math.SE.
As per my search I found that it is only PTC mathcad that is stating it is possible to draw complex domain graphs but couldn't find any information related in mathcad manual or even in books including such graphs. Did any one managed to have such graphs drawn before. I would appreciate it as it will help me imagine graphically the circulation of complex numbers and the changes in formulas.
Can any one help?
In Mathcad, use CreateSpace with the appropriate functions of time. You'll have to open the plot dialog box to set the various axis and backplane options. You'll also need to ensure that each of the 3 plot elements is set to Data Points rather than Surface (the default display for the 3D plot component).
I typed the plot's expressions for exp, sin and cos elsewhere in the worksheet and then dragged them onto the plot.
I have a list of data that I want to be animated on the plot, I'm currently using:
graph1=gdots(pos = pvalues) #pvalues is list of points
while t <= t_max:
rate(200)
... #pvalues is updated to new contain the new points
graph1=gdots(pos = pvalues)
What happens here is the old points remain on the plot, so lines are traced out when I want the points to just move. I've tried deleting the graph, making it invisible, but none of it works.
graph1.visible = False
del graph1
Including the above makes no noticeable difference to the display. I've searched a lot about this, but the VPython documentation seems to be annoyingly incomplete.
I realise this is a very old question, however I had the same issue with vpython 7. For me, graph1.delete() removed the associated data points from the graph, and rescaled the axes based on the remaining data (if any). I haven't yet found a way to remove the graph axes themselves (i.e. delete the figure).
I'm getting familiar with Graphviz and wonder if it's doable to generate a diagram/graph like the one below (not sure what you call it). If not, does anyone know what's a good open source framework that does it? (pref, C++, Java or Python).
According to Many Eyes, this is a bubble chart. They say:
It is especially useful for data sets with dozens to hundreds of values, or with values that differ by several orders of magnitude.
...
To see the exact value of a circle on the chart, move your mouse over it. If you are charting more than one dimension, use the menu to choose which dimension to show. If your data set has multiple numeric columns, you can choose which column to base the circle sizes on by using the menu at the bottom of the chart.
Thus, any presentation with a lot of bubbles in it (especially with many small bubbles) would have to be dynamic to respond to the mouse.
My usual practice with bubble charts is to show three or four variables (x, y and another variable through the size of the bubble, and perhaps another variable with the color or shading of the bubble). With animation, you can show development over time too - see GapMinder. FlowingData provides a good example with a tutorial on how to make static bubble charts in R.
In the example shown in the question, though, the bubbles appear to be located somewhat to have similar companies close together. Even then, the exact design criteria are unclear to me. For example, I'd have expected Volkswagen to be closer to General Motors than Pfizer is (if some measure of company similarity is used to place the bubbles), but that isn't so in this diagram.
You could use Graphviz to produce a static version of a bubble chart, but there would be quite a lot of work involved to do so. You would have to preprocess the data to calculate a similarity matrix, obtain edge weights from that matrix, assign colours and sizes to each bubble and then have the preprocessing script write the Graphviz file with all edges hidden and run the Graphviz file through neato to draw it.
I try to receive the data from a sensor from time to time and plot it in real time. That means the length of the dataset is not know before hand. And need to adjust the range of the graph dynamically.
I tried the following
plot(1,10, xlim=range(0,10), ylim=range(0,10), type='n')
points(1,data[1])
points(2,data[2])
But once the number of dots is beyond the range of x axis (10 in this case), the data points are out of the range. How to adjust the range accordingly?
Just issue a new plot command with an expanded range. On modern computers the time taken to recreate the plot is small and you generally will not see a delay. Any other approach will essentially do the same thing, clear the current plot and create a new plot.
The ggplot2 and lattice packages have ways of constructing a plot and updating the plot, but when the updated plot is shown it is redrawn from scratch.
There is a zoomplot function in the TeachingDemos package which will allow you to change the range of a plot, but it also will just redraw the plot from scratch (and due to changes in R 3.0.0 it is not currently working, so if you wanted to use it you would need to go back to R 2.15 or before, or wait for it to be fixed).
You can't adjust the range dynamically (sometimes Excel is better). However, you can keep track of what you've plotted, and redo the plot when you've reached the limit. You could also just make a new plot every time you get more data, which would be a way of faking a dynamic update.