这有效:
plot(1:10, col=rgb(0,0,0,1))
rug(1:10, col=rgb(0,0,0,1))
Run Code Online (Sandbox Code Playgroud)
这不起作用(没有额外绘制地毯):
plot(1:10, col=rgb(0,0,0,0.9))
rug(1:10, col=rgb(0,0,0,0.9))
Run Code Online (Sandbox Code Playgroud)
为什么?我该如何解决这个问题?
我需要这个的原因是因为我想添加 alpha 颜色,以便重叠的“地毯”更暗。无法指定 alpha 颜色,我只能绘制这个:
plot(rep(1:10,100), rep(1:10,100), col=rgb(0,0,0,1))
rug(jitter(rep(1:10,100)), col=rgb(0,0,0,1))
Run Code Online (Sandbox Code Playgroud)

我需要在 Python 中可视化几个重叠的标量字段。我找到了mayavi图书馆来做这种情节。问题是我不明白如何为标量字段自定义颜色映射。我的想法是为每个字段设置一种颜色的阴影。我试图采用一个例子,但它不起作用。这是我使用红色阴影可视化标量场的代码:
import numpy as np
from mayavi import mlab
x, y, z = np.ogrid[-10:10:20j, -10:10:20j, -10:10:20j]
s = np.sin(x*y*z)/(x*y*z)
src = mlab.pipeline.scalar_field(s)
volume = mlab.pipeline.volume(src)
lut = np.zeros((256, 4), np.uint8)
lut[:,-1] = 255
lut[:, 0] = np.linspace(0, 255, 256)
volume.module_manager.scalar_lut_manager.lut.table = lut
mlab.draw()
mlab.view(40, 85)
mlab.show()
Run Code Online (Sandbox Code Playgroud)
但是,输出图始终带有标准的蓝红查找表。
我正在使用 NetworkX 制作图表以导出以使用 Gephi 进行可视化。我一直在向图中的节点添加各种属性,没有问题,直到我尝试添加颜色。有谁知道如何使用 networkx 导出带有“彩色”节点的图形?(我一直在写一个 gexf 文件,但只要它与 Gephi 兼容,我不在乎它是否是另一种格式。)
这是我制作图表的代码:
def construct_weighted_graph(nodes, distance_dict, weighting_function, color = True):
G = nx.Graph()
#nodes automatically added when edges added.
for sequence in nodes: #loop through and add size attribute for num of sequences
G.add_node(sequence)
G.node[sequence]['size'] = distance_dict[sequence][1] #size represented by the node
if color:
G.node[sequence]['color'] = (0,1,0)
for i_node1 in range(len(nodes)):
dist_list = distance_dict[nodes[i_node1]][-2] #list of distances
for i_node2 in range(i_node1+1, len(nodes)):
G.add_edge(nodes[i_node1], nodes[i_node2],
weight = weighting_function(dist_list[i_node2]))
return G
Run Code Online (Sandbox Code Playgroud)
这不是我对颜色的确切要求,因为不同的节点被分配了不同的颜色,但这是基本思想。
我的代码如下用于缩放时间 X 轴。我想在时间之间设置一个限制应该放大或缩小,即时间的上限和下限。我试图将边界值放在缩放函数中,这是在此d3 图中建议的缩放线程有限的函数。但它不起作用。
var x = d3.time
.scale()
.domain([start_date, end_date])
.range([0, width]);
var zoom = d3.behavior
.zoom()
.x(x)
.on("zoom", zoomed);
svg = d3
.select("#chart" + k)
.append("svg:svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("svg:g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.call(zoom);
function zoomed() {
svg.selectAll(".line").remove();
makeBackground();
svg.select(".x.axis").call(xAxis);
d3.select(".x.axis.top").call(xAxisTop);
svg.select(".x.grid").call(
make_x_axis()
.tickSize(-height, 0, 0)
.tickFormat("")
);
svg.selectAll(".circle-path").remove();
d3.selectAll(".trainTag").remove();
drawPaths();
drawCircle(x, y, chartBody, trainData[0]);
} …Run Code Online (Sandbox Code Playgroud)我已经为二元分类编写了多层感知。据我了解,一个隐藏层可以仅使用线作为决策边界来表示(每个隐藏神经元一条线)。这很有效,只需使用训练后的权重就可以轻松绘制。
但是,随着更多层的添加,我不确定使用什么方法,并且教科书很少处理可视化部分。我想知道,是否有直接的方法将权重矩阵从不同层转换到这个非线性决策边界(假设 2D 输入)?
非常感谢,
我正在尝试在 seaborn (python) 中创建一个热图,其中某些方块用不同的颜色着色,(这些方块包含无关紧要的数据 - 在我的情况下,它将是值小于 1.3 的方块,即 p 值的 -log >0.05)。我找不到这样的功能。掩盖这些方块也不起作用。这是我的代码:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
import seaborn as sns; sns.set()
data = [[1.3531363408, 3.339479161, 0.0760855365], [5.1167382617, 3.2890920405, 2.4764601828], [0.0025058257, 2.3165128345, 1.6532714962], [0.2600549869, 5.8427407219, 6.6627226609], [3.0828581725, 16.3825494439, 12.6722666929], [2.3386307357, 13.7275065772, 12.5760972276], [1.224683813, 2.2213656372, 0.6300876451], [0.4163788387, 1.8128374089, 0.0013106046], [0.0277592882, 2.9286203949, 0.810978992], [0.0086613622, 0.6181261247, 1.8287878837], [1.0174519889, 0.2621290291, 0.1922637697], [3.4687429571, 4.0061981716, 0.5507951444], [7.4201304939, 3.881457516, 0.1294141768], [2.5227546319, 6.0526491816, 0.3814362442], [8.147538027, 14.0975727815, 7.9755706939]]
cmap2 = mpl.colors.ListedColormap(sns.cubehelix_palette(n_colors=20, start=0, …Run Code Online (Sandbox Code Playgroud) 我在一个月(30 天)中每 5 分钟收集一次传感器数据。这意味着,我有一个时间序列数据,总共有 288*30 个数据点。
我想散点图数据(x 轴:时间,y 轴:传感器值)。以下代码用于测试。
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
# generate time series randomly (length: 1 month)
rng=pd.date_range("2015-11-11",periods=288*30,freq="5min")
ts=pd.Series(np.random.randn(len(rng)),rng)
nr=3
nc=1
fig=plt.figure(1)
fig.subplots_adjust(left=0.04,top=1,bottom=0.02,right=0.98,wspace=0.1,hspace=0.1)
for i in range(3):
ctr=i+1
ax=fig.add_subplot(nr,nc,ctr)
ax.scatter(ts.index,ts.values)
ax.set_xlim(ts.index.min(),ts.index.max())
plt.show()
Run Code Online (Sandbox Code Playgroud)
我生成了具有 288*30 个观测值的随机时间序列数据,并试图将其绘制在散点图中。但是,如您所见,无法分析该图。
我想重绘它满足以下条件:
我想要图的放大版本。换句话说,某个时间范围(例如,2~3 小时)的部分数据点被一次性显示出来。然后,相邻点之间应该有足够的空间。
我想将图形保存为 png 或 pdf 文件。然后,如果我打开文件,图像(或 pdf)查看器有一个水平滚动条,使我能够浏览整个图形。
有谁能解决吗?
我认为对于 matplotlib 专家来说并不难,但对于我这个初学者来说却很难。
有没有办法在 R 中创建连接两点的线?我知道lines(),函数,但它创建线段我正在寻找的是一条无限长的线。
我玩了一会儿,无法正确保存用 seaborn 渲染的图。使用 plt.savefig 时,我丢失了网格。但是,使用 plt.show 然后手动保存图形是可行的。eps 和 png 也会发生这种情况。我需要渲染大量的图,所以这是一个问题。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style = 'darkgrid', font_scale=2)
t = np.arange(100)
y = np.random.rand(len(t))
plt.plot(t,y)
plt.title('Test title')
plt.xlabel('Test xlab')
plt.ylabel('Tex $y_i = w_i x_i$')
plt.tight_layout()
#plt.show()
plt.savefig('test_plot.eps', format='eps')
Run Code Online (Sandbox Code Playgroud)
visualization ×10
python ×6
graphics ×2
matplotlib ×2
r ×2
seaborn ×2
3d ×1
attributes ×1
colors ×1
d3.js ×1
gephi ×1
heatmap ×1
javascript ×1
lines ×1
mayavi ×1
networkx ×1
numpy ×1
pandas ×1
perceptron ×1
plot ×1
scatter-plot ×1
time-series ×1