teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コード修正

2018/10/18 04:40

投稿

jam912sh
jam912sh

スコア25

title CHANGED
File without changes
body CHANGED
@@ -25,26 +25,26 @@
25
25
  </head>
26
26
  <body>
27
27
  <!-- 棒グラフ -->
28
- <div>
28
+
29
29
  <script src="https://d3js.org/d3.v4.min.js"></script>
30
- <svg width="400" height="400" id="test1"></svg>
30
+ <svg width="400" height="400" id="test1" class="1"></svg>
31
31
  <script>
32
- var svg = d3.select("svg"),
32
+ var svg1 = d3.select("svg"),
33
33
  margin = 150,
34
- width = svg.attr("width") - margin,
34
+ width = svg1.attr("width") - margin,
35
- height = svg.attr("height") - margin
35
+ height = svg1.attr("height") - margin
36
36
 
37
- svg.append("text")
37
+ svg1.append("text")
38
38
  .attr("transform", "translate(100,0)")
39
- .attr("x", 50)
39
+ .attr("x", 45)
40
- .attr("y", 50)
40
+ .attr("y", 45)
41
- .attr("font-size", "24px")
41
+ .attr("font-size", "20px")
42
42
  .text("棒グラフ")
43
43
 
44
44
  var xScale = d3.scaleBand().range([0, width]).padding(0.4),
45
45
  yScale = d3.scaleLinear().range([height, 0]);
46
46
 
47
- var g = svg.append("g")
47
+ var g1 = svg1.append("g")
48
48
  .attr("transform", "translate(" + 100 + "," + 100 + ")");
49
49
 
50
50
  d3.csv("XYZ.csv", function(error, data) {
@@ -55,7 +55,7 @@
55
55
  xScale.domain(data.map(function(d) { return d.year; }));
56
56
  yScale.domain([0, d3.max(data, function(d) { return d.value; })]);
57
57
 
58
- g.append("g")
58
+ g1.append("g")
59
59
  .attr("transform", "translate(0," + height + ")")
60
60
  .call(d3.axisBottom(xScale))
61
61
  .append("text")
@@ -65,7 +65,7 @@
65
65
  .attr("stroke", "black")
66
66
 
67
67
 
68
- g.append("g")
68
+ g1.append("g")
69
69
  .call(d3.axisLeft(yScale).tickFormat(function(d){
70
70
  return d;
71
71
  })
@@ -78,7 +78,7 @@
78
78
  .attr("stroke", "black")
79
79
 
80
80
 
81
- g.selectAll(".bar")
81
+ g1.selectAll(".bar")
82
82
  .data(data)
83
83
  .enter().append("rect")
84
84
  .attr("class", "bar")
@@ -88,73 +88,79 @@
88
88
  .attr("height", function(d) { return height - yScale(d.value); });
89
89
  });
90
90
  </script>
91
-
92
91
  <!-- 棒グラフEND -->
93
92
 
94
93
  <!-- 円グラフ -->
95
-
94
+ <script src="https://d3js.org/d3.v4.min.js"></script>
96
- <svg width="400" height="400" id="test2"></svg>
95
+ <svg width="400" height="400" id="test2" class="2"></svg>
97
96
  <script>
98
97
 
99
- var svg = d3.select("svg"),
98
+ var svg2 = d3.select("svg"),
100
- width = svg.attr("width"),
99
+ width = svg2.attr("width"),
101
- height = svg.attr("height"),
100
+ height = svg2.attr("height"),
101
+ //円の大きさ
102
- radius = Math.min(width, height) / 2;
102
+ radius = Math.min(width, height) / 2.5;
103
103
 
104
- var g = svg.append("g")
104
+ var g2 = svg2.append("g")
105
- .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
105
+ .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
106
106
 
107
- var color = d3.scaleOrdinal(["#ff7f7f", "#7fbfff", "#7fffff", "#7fffbf", "#7fff7f", "#bfff7f", "#ffff7f","#ffbf7f", "#ff7fbf", "#ff7fff", "#bf7fff", "#7f7fff"]);
107
+ var color = d3.scaleOrdinal(["#ff7f7f", "#7fbfff", "#7fffff", "#7fffbf", "#7fff7f", "#bfff7f", "#ffff7f","#ffbf7f", "#ff7fbf", "#ff7fff", "#bf7fff", "#7f7fff"]);
108
108
 
109
- var pie = d3.pie().value(function(d) {
109
+ var pie = d3.pie().value(function(d) {
110
- return d.percent;
110
+ return d.percent;
111
- });
111
+ });
112
+ //文字の位置1
113
+ var path = d3.arc()
114
+ .outerRadius(radius - 10)
115
+ .innerRadius(radius - 80);
116
+ //文字の位置2
117
+ var label = d3.arc()
118
+ .outerRadius(radius)
119
+ .innerRadius(radius - 100);
112
120
 
121
+ d3.csv("browseruse.csv", function(error, data) {
122
+ if (error) {
123
+ throw error;
124
+ }
125
+ var arc = g2.selectAll(".arc")
113
- var path = d3.arc()
126
+ .data(pie(data))
114
- .outerRadius(radius - 10)
115
- .innerRadius(radius - 70);
127
+ .enter().append("g")
128
+ .attr("class", "arc");
116
129
 
117
- var label = d3.arc()
118
- .outerRadius(radius)
130
+ arc.append("path")
119
- .innerRadius(radius - 80);
131
+ .attr("d", path)
132
+ .attr("fill", function(d) { return color(d.data.browser); });
120
133
 
121
- d3.csv("browseruse.csv", function(error, data) {
122
- if (error) {
123
- throw error;
134
+ console.log(arc)
124
- }
125
- var arc = g.selectAll(".arc")
126
- .data(pie(data))
127
- .enter().append("g")
128
- .attr("class", "arc");
129
135
 
130
- arc.append("path")
136
+ arc.append("text")
137
+ .attr("transform", function(d) {
138
+ return "translate(" + label.centroid(d) + ")";
139
+ })
131
- .attr("d", path)
140
+ .attr("dy", ".40em")
132
- .attr("fill", function(d) { return color(d.data.browser); });
141
+ .text(function(d) { return d.data.browser; });
133
142
 
134
- console.log(arc)
135
143
 
136
- arc.append("text")
144
+ arc.append("text")
137
- .attr("transform", function(d) {
145
+ .attr("transform", function(d) {
138
- return "translate(" + label.centroid(d) + ")";
146
+ return "translate(" + label.centroid(d) + ")";
139
- })
147
+ })
140
- .attr("dy", ".40em")
148
+ .attr("dy", "-1.0em")
141
- .text(function(d) { return d.data.browser; });
149
+ .text(function(d) { return d.data.percent; });
150
+ });
151
+ //タイトルの設定
152
+ svg2.append("g")
153
+ //文字位置
154
+ .attr("transform", "translate(" + (width / 2 - 50) + "," + 30 + ")")
155
+ .append("text")
156
+ .attr("class", "title")
157
+ .attr("font-size", "20px")
158
+ .text("円グラフ")
142
159
 
160
+ </script>
143
161
 
144
- arc.append("text")
162
+ <!-- 円グラフEND -->
145
- .attr("transform", function(d) {
146
- return "translate(" + label.centroid(d) + ")";
147
- })
148
- .attr("dy", "-1.0em")
149
- .text(function(d) { return d.data.percent; });
150
- });
151
163
 
152
- svg.append("g")
153
- .attr("transform", "translate(" + (width / 2 - 120) + "," + 20 + ")")
154
- .append("text")
155
- .attr("class", "title")
156
- .text("円グラフ")
157
-
158
164
  </script>
159
165
  </body>
160
166
  </html>