我有一个Excel与大多0和1的文件,我想用这个信息来颜色的图的顶点和边。因此,如果单元格为0,则将边缘变为灰色,但如果单元格为1,则将其着色为蓝色。对于顶点也是类似的。如何使用excel数据为图表(顶点和边)着色?
谁能给我如何去了解这个建议?我应该用什么来制作图表?我该如何告诉它如何为它着色?
谢谢!
我有一个Excel与大多0和1的文件,我想用这个信息来颜色的图的顶点和边。因此,如果单元格为0,则将边缘变为灰色,但如果单元格为1,则将其着色为蓝色。对于顶点也是类似的。如何使用excel数据为图表(顶点和边)着色?
谁能给我如何去了解这个建议?我应该用什么来制作图表?我该如何告诉它如何为它着色?
谢谢!
尝试使用D3图。访问https://d3js.org/
D3使用JavaScript语言。你可以参考多个图表。
即使您可以从excel文件中获取输入数据来创建动态图形。
你可以参考D3网络图来了解如何从给定的数据http://christophergandrud.github.io/d3Network/
改变顶点和图形边缘的颜色如果您有x和y的值可以直接打印这些工作表。以下是一个随机生成5个点的x和y坐标的示例。每个点绘制一个小的实心圆。在前一个点和下一个点之间画一条线,形成一个闭环。
为了演示如何选择线条颜色,我将它们交替着色为灰色和蓝色,以便您了解如何根据其他一些标准选择颜色。
vbBlue是预设的调色板之一(见本link),这就是为什么它没有被宣布 - 不像vbGray。
Option Explicit
Sub drawALine(xFrm As Double, yFrm As Double, xTo As Double, yTo As Double, c As Long)
With ActiveSheet.Shapes.AddLine(xFrm, yFrm, xTo, yTo).Line
.DashStyle = msoLineDashDotDot
.ForeColor.RGB = c
End With
End Sub
Sub drawNode(r As Double, x As Double, y As Double, c As Long)
With ActiveSheet.Shapes.AddShape(msoShapeOval, x - r/2, y - r/2, r, r)
.Fill.ForeColor.RGB = c
End With
End Sub
Sub ConnectedOverLappingLoop()
Dim xMax As Double, yMax As Double, x1 As Double, y1 As Double
Dim xFrm As Double, yFrm As Double, xTo As Double, yTo As Double
Dim radius As Double
Dim vbGray As Long, clr As Long
xMax = 200
yMax = 200
radius = 5
vbGray = RGB(150, 150, 150)
xFrm = Rnd() * xMax
yFrm = Rnd() * yMax
x1 = xFrm
y1 = yFrm
clr = vbBlue
drawNode radius, x1, y1, vbBlue
Dim i As Integer
For i = 1 To 5:
xTo = Rnd() * xMax
yTo = Rnd() * yMax
drawNode radius, xTo, yTo, vbBlue
drawALine xFrm, yFrm, xTo, yTo, clr
xFrm = xTo
yFrm = yTo
If clr = vbBlue Then
clr = vbGray
Else
clr = vbBlue
End If
Next
drawALine xFrm, yFrm, x1, y1, clr
End Sub