我是python的新手,我正在尝试使用matplotlib在同一个图中绘制多行.我的Y轴的值存储在字典中,我在下面的代码中在X轴上创建相应的值
我的代码是这样的:
for i in range(len(ID)):
AxisY= PlotPoints[ID[i]]
if len(AxisY)> 5:
AxisX= [len(AxisY)]
for i in range(1,len(AxisY)):
AxisX.append(AxisX[i-1]-1)
plt.plot(AxisX,AxisY)
plt.xlabel('Lead Time (in days)')
plt.ylabel('Proportation of Events Scheduled')
ax = plt.gca()
ax.invert_xaxis()
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是我逐个单独绘制单独的数字.任何人都可以帮我弄清楚我的代码有什么问题吗?为什么我不能生成多行绘图?非常感谢!
我正在尝试使用csv文件的元素创建一个图,如下所示:
h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但收到错误说
Error in data.frame(id = varieties, attr(mat, "row.names"), check.rows = FALSE) :
arguments imply differing number of rows: 8, 20
Run Code Online (Sandbox Code Playgroud)
我的示例数据有8列和20行(不包括标题和行名称).我尝试在线查找并尝试实施一些修复,但问题仍然存在.我真的很感激任何帮助.
mat <- read.csv("trial.csv", header=T, row.names=1)
varieties = names(mat)
df <- data.frame(id=varieties,attr(mat, "row.names"), check.rows= FALSE)
Run Code Online (Sandbox Code Playgroud) 我的python脚本使用matplotlib绘制x,y,z数据集的2D"热图".我的x和y值代表蛋白质中的氨基酸残基,因此只能是整数.当我放大绘图时,它看起来像这样:

正如我所说,xy轴上的浮点值对我的数据没有意义,因此我希望它看起来像这样:

任何想法如何实现这一目标?这是生成图的代码:
def plotDistanceMap(self):
# Read on x,y,z
x = self.currentGraph['xData']
y = self.currentGraph['yData']
X, Y = numpy.meshgrid(x, y)
Z = self.currentGraph['zData']
# Define colormap
cmap = colors.ListedColormap(['blue', 'green', 'orange', 'red'])
cmap.set_under('white')
cmap.set_over('white')
bounds = [1,15,50,80,100]
norm = colors.BoundaryNorm(bounds, cmap.N)
# Draw surface plot
img = self.axes.pcolor(X, Y, Z, cmap=cmap, norm=norm)
self.axes.set_xlim(x.min(), x.max())
self.axes.set_ylim(y.min(), y.max())
self.axes.set_xlabel(self.currentGraph['xTitle'])
self.axes.set_ylabel(self.currentGraph['yTitle'])
# Cosmetics
#matplotlib.rcParams.update({'font.size': 12})
xminorLocator = MultipleLocator(10)
yminorLocator = MultipleLocator(10)
self.axes.xaxis.set_minor_locator(xminorLocator)
self.axes.yaxis.set_minor_locator(yminorLocator)
self.axes.tick_params(direction='out', length=6, width=1)
self.axes.tick_params(which='minor', direction='out', length=3, width=1)
self.axes.xaxis.labelpad = 15 …Run Code Online (Sandbox Code Playgroud) Seaborn提供了一个名为color_palette的功能,可以让您轻松地为绘图创建新的color_palettes.
colors = ["#67E568","#257F27","#08420D","#FFF000","#FFB62B","#E56124","#E53E30","#7F2353","#F911FF","#9F8CA6"]
color_palette = sns.color_palette(colors)
Run Code Online (Sandbox Code Playgroud)
我想将color_palette转换为cmap,我可以在matplotlib中使用,但我不知道如何做到这一点.
可悲的是,像"cubehelix_palette","light_palette"这样的函数,......有一个"as_cmap"参数.不幸的是,"color_palette"没有.
我有一组数据要显示为散点图.我希望每个点都被绘制成一个大小的正方形dx.
x = [0.5,0.1,0.3]
y = [0.2,0.7,0.8]
z = [10.,15.,12.]
dx = [0.05,0.2,0.1]
scatter(x,y,c=z,s=dx,marker='s')
Run Code Online (Sandbox Code Playgroud)
问题是s分散函数读取的大小为点^ 2.我想要的是每个点由面积dx ^ 2的平方表示,其中该区域是"实际"单位,即绘图单位.我希望你能明白这一点.
我还有另一个问题.散点函数用黑色边框绘制标记,如何删除此选项并且根本没有边框?
我使用fft2来计算MATLAB中灰度图像的傅里叶变换.
绘制结果大小的常用方法是什么?
我在R中有以下直方图:
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), ", Bootstrap samples, Allianz")))
Run Code Online (Sandbox Code Playgroud)
标题太长了,所以我想换线.根据这个线程,我试过
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), ",cat("\n") Bootstrap samples, Allianz")))
Run Code Online (Sandbox Code Playgroud)
要么
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), cat("\n"),", Bootstrap samples, Allianz")))
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用,我怎样才能在paste()中获得换行符?
我正在使用ggplot这里描述的
http://docs.ggplot2.org/current/stat_density.html
并进入R控制台
m <- ggplot(movies, aes(x = rating))
m + geom_density()
Run Code Online (Sandbox Code Playgroud)
这有效,但有一些方法可以删除x轴和密度图之间的连接(将密度图连接到x轴的垂直线)
使用geom_text标记散点图的外围点.根据定义,这些点往往靠近画布边缘:通常至少有一个单词与画布边缘重叠,使其无用.
显然,这可以通过以下情况手动解决+ xlim(c(1.5, 4.5)):
# test
df <- data.frame(word = c("bicycle", "tricycle", "quadricycle"),
n.wheels = c(2,3,4),
utility = c(10,6,7))
ggplot(data=df, aes(x=n.wheels, y=utility, label=word)) + geom_text() + xlim(c(1.5, 4.5))
Run Code Online (Sandbox Code Playgroud)

但这并不理想
搜索这个问题没有找到解决方案,Hadley Wickham似乎满足于在ggplot2的帮助页面中将标签切成两半(我知道Hadley,他们只是一个例子;)