use it this way:var link = svg.selectall (". Link"). data (links). enter (). Append ("path") . attr ("Class", "link") . attr ("D", diagonal);This draws the lines between all the nodes. Next we'll draw the node.Nodes are also drawn using the circle in SVG. This is no longer the case. I've already talked about it before. You can also view the source code yourself. The result diagram is:If you want to view the source code, please click on the following URL. Right-click the
("X2", function (d) {return d.target.x;}) . attr ("Y2", function (d) {return d.target.y;}); Node.attr ("Transform", function (d) { return "translate (" + D.x + "," + D.y + ")"; } ";});Here as in section 9.2, tick refers to the time interval, that is, every time interval after the refresh of the picture, the content of the refresh is written in the nameless function functions, the function is written in the contents of the drawing. Here you see, 第7-9 is used for panning, and the
setting the action distance of the gravitational force, exceeding this distance, there is no gravitational force. The default value is infinity.Gravity ()The center of the size function creates gravity, and each vertex moves toward the center, with a default value of 0.1. It can also be set to 0, without the effect of gravity.Theta ()If the number of vertices is too large, the calculation time will be increased (O (n log n)). The theta is meant to limit this calculation, and the default value i
D3.js is also a JavaScript framework, like jquery, except that his specialty is in the data visualization of this piece. So don't think the D3 is so complicated. In the above code we can see some of the uses of D3:Select element:d3.select ("element"), this is the $ () in jquery, but not in shorthand form.After creating
The first test of the successful D3.js code needs to be opened in the IE9 and above browsers. Firefox and Google can also try. Delete "20"rows="8"id="con">"运行代码"type="button"id="btn"/>Test the successful D3.js code
d.target.x;}); Edges_line.attr ("Y2", function (d) {return d.target.y;}); Update the position of text on the connector edges_text.attr ("X", function (d) {return (d.source.x + d.target.x)/2;}); Edges_text.attr ("Y", function (d) {return (d.source.y + d.target.y)/2;}); Whether to draw the text on the connector Edges_text.style ("Fill-opacity", function (d) {return D.source.show | | d.target.show 1:0.0;}); Update the node image and text nodes_img.attr ("X", function (d) {return D.X-IMG_W/2;});
= 20;var Nodes_text = Svg.selectall (". Nodetext"). Data (Root.nodes). Enter ( ). Append ("text"). attr ("Class", "Nodetext"). attr ("DX", TEXT_DX). attr ("dy", Text_dy). Text (function (d) {return d.name;});第1-16 Line: Drawing a picture第10-15: Displays the text on the connector you want to associate with this node when you move the mouse over the picture. This is just a Boolean assignment for D.show, which is used later in the update.第21-30: Draw text below the picture4.5 UpdateTo keep the mec
The advanced series of tutorials has been completed and is hereby summarized.At the beginning of the month, I said the end of the advanced tutorial, today is the last day, can be done. O (∩_∩) o~As a result, the tutorials for the "Getting Started"-"advanced"-"premium" three series are complete. The purpose of this tutorial is to provide a network of free learning series, I hope you can enjoy.In the process of writing the article, the author's understanding of
In the "Advanced-Chapter 1.0" explains how to use the text and Tspan in SVG to achieve the function of line wrapping, this article on this feature is encapsulated, can be used directly later.1. Reference JS file: Multext.jsAfter downloading, refer to the or directly through the URL reference:Of course, to use this file, you should also refer to the D3 library:2. Parameters of the functionOnly one function A
D3 New Topic Homepage
In a blink of an eye, this introductory series has accumulated more than 22 articles, I think as d3.js this data visualization tool is enough to get Started. I believe just to read this Series. It is possible to complete most of the visualization work in the future with the aid of Queries.D3.js's Earliest v1.0 version was announced by
p.data (persons, function (d) {return d.id;}). Text (function (d) {return d.id + ":" + D.name;});There is only one statement return d.id in the key function. Represents a key using the ID property of an array item. After modifying the contents of the P element with the data of this binding, the result is as follows:As you can see, the results are not arranged in the order of the New Persons Array (6: Zhang San, 9: John Doe, 3: Harry). As shown in binding procedure 1, the order of the bindings d
simplified version of GeoJSON, which can be said to be a GeoJSON child. The author of D3.js thinks GeoJSON is not very good, and it is more admired Topojson format.Topojson compared to GeoJSON, the file size is reduced by 80% because:
The boundary line is recorded only once (for example, the junction lines in Guangxi and Guangdong province are recorded only once)
Do not use floating-point numb
(DataSet)). Enter () . Append ("G") . attr ("Transform", " Translate ("+outerradius+", "+outerradius+") ");In the above code, we bind the converted data pie (dataset). There are 5 of data. So 5 g elements are added. The last line of code is the position of the moving element, and the default starting position is the (0,0) coordinates of the SVG draw box, which is the upper-left corner. Note that this time the above code returns theSelect 5 g elements at the same time. Next, for each G elemen
value3. Use of Update and ExitWhen the corresponding element is too large (the number of bound data Now there are three P elements in the body, to bind an array of length less than 3 to the selection set of p, and then handle both the update and exit respectively.varDataSet = [3 ]; //Select the P element in bodyvarp = D3.Select("Body"). SelectAll ("P"); //Get the Update sectionvarUpdate =p.data (dataset);//Get exit SectionvarExit =update.exit ();//ha
We don't say much, this article mainly introduces the use of D3.js packaging text to achieve the function of automatic line-wrapping, let's take a look together.
I. Referencing multext.js documents
Multext.js
function Appendmultitext (container, str, POSX, posy, Width, fontsize, fontfamily) {if (Arguments.length
Can be saved as later, referenced in the label:
Of course, to use this
D3.js Data Visualization Practical Manual study notesThe interpolator interpolation a given range of values and prints it in the middle.Character interpolation
var data=[];var sizescale=d3.scale.linear (). Domain ([0,9]). Range (["Italic bold 12px/30px Georgia, serif", "Italic bold 120px/180px Georgia, serif "]); for (Var i=0;iColor interpolation
var
summarize the installation process for a D3.js deployment node environmentPreparation phase:first, the computer to install the node environment, this stage filtered out, if the node environment is not installed, then do not play based on the node environment and other things. Build the Environment:I create a project directory D3node in my own F: System disk, and then create a Package.json file that is confi
Website:
http://d3js.org/Example:
Https://github.com/mbostock/d3/wiki/GalleryReference:
Online reference //or download to local Begin:
D3.select implementing a single element selectionSelect.attr, reading/Setting element properties
select.classed, adding/removing element classes
Remove the P1 class for P tags D3.
slowly reaches the last state of the transformation
Elastic with bouncing reach finally state
Bounce bouncing a few times at the last state.
Called when the shape is:. Ease ("bounce")4.delay ()Specifies the time of the delay, which indicates a certain amount of time before the transition is initiated and the unit is the same in milliseconds. This function can specify a delay for the population. You can also specify a delay for an individual.For general designations, such as:. Trans
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.