标签: graphing

Matplotlib - 向下移动X轴标签,但不向下移动X轴

我正在使用Matplotlib绘制直方图.使用上一个问题的提示:Matplotlib - 标记每个bin,我或多或少地解决了问题.

最后一个问题 - 先前 - x轴标签("时间(以毫秒为单位)")在x轴刻度线下面呈现(0.00,0.04,0.08,0.12等)

无填充 - 图下方的轴标签

使用Joe Kingston的建议(见上面的问题),我尝试使用:

ax.tick_params(axis='x', pad=30)
Run Code Online (Sandbox Code Playgroud)

但是,这会同时移动x轴刻度线(0.00,0.04,0.08,0.12等)以及x轴标签("时间(以毫秒为单位)"):

30填充 - 轴标签和刻度标记都已移动

有没有办法只将x轴标签移动到三行数字下面?

Nb:您可能需要直接打开下面的PNG - 右键单击​​图像,然后单击查看图像(在FF中),或在新选项卡中打开图像(Chrome).由SO完成的图像调整大小使它们几乎不可读

python graphing matplotlib

95
推荐指数
2
解决办法
11万
查看次数

gnuplot vs Matplotlib

我已经开始使用gnuplot-py绘制Tomcat日志的项目,特别是将特定请求与内存分配和垃圾收集相关联.对于Python绘图,gnuplot-py与Matplotlib的集体智慧是什么?有没有更好的图形库我还没有听说过?

我的一般考虑是:

  • 虽然gnuplot有大量的文档,但gnuplot-py却没有.Matplotlib的文档社区有多好?
  • 是否有gnuplot可以做的事情,但gnuplot-py不能?
  • Matplotlib有更好的Python支持吗?
  • 是否有大型节目阻止错误?烦恼?
  • 目前gnuplot正在绘制100,000点积分,我计划将其扩展到数百万.我应该期待问题吗?Matplotlib如何处理这个问题?
  • 易用性,gnuplot与Matplotlib的周转时间?
  • 将现有的gnuplot-py代码移植到Matplotlib是多么容易?

你将如何处理这项任务?

python graphing logging gnuplot matplotlib

79
推荐指数
8
解决办法
5万
查看次数

matplotlib设置yaxis标签大小

如何更改yaxis标签的大小?现在,我使用更改所有标签的大小

pylab.rc('font', family='serif', size=40)
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我想使y轴标签大于x轴.但是,我想单独留下刻度标签.

我试过,例如:

pylab.gca().get_ylabel().set_fontsize(60)
Run Code Online (Sandbox Code Playgroud)

但我只得到:

AttributeError: 'str' object has no attribute 'set_fontsize'
Run Code Online (Sandbox Code Playgroud)

所以,显然这不起作用.我已经看到很多用于刻度尺寸的东西,但轴标签本身没有.

python graphing label matplotlib

70
推荐指数
1
解决办法
12万
查看次数

Matplotlib - 标记每个bin

我目前正在使用Matplotlib来创建直方图:

在此输入图像描述

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as pyplot
...
fig = pyplot.figure()
ax = fig.add_subplot(1,1,1,)
n, bins, patches = ax.hist(measurements, bins=50, range=(graph_minimum, graph_maximum), histtype='bar')

#ax.set_xticklabels([n], rotation='vertical')

for patch in patches:
    patch.set_facecolor('r')

pyplot.title('Spam and Ham')
pyplot.xlabel('Time (in seconds)')
pyplot.ylabel('Bits of Ham')
pyplot.savefig(output_filename)
Run Code Online (Sandbox Code Playgroud)

我想让x轴标签更有意义.

首先,这里的x轴刻度似乎限于五个刻度.无论我做什么,我似乎无法改变这一点 - 即使我添加更多xticklabels,它只使用前五个.我不确定Matplotlib如何计算这个,但我认为它是从范围/数据中自动计算的?

有没有什么办法可以提高x-tick标签的分辨率 - 甚至可以提高每个条形码/ bin 的分辨率

(理想情况下,我也希望以微秒/毫秒重新格式化秒数,但这是另一天的问题).

其次,我想要标记每个单独的条形图 - 包含该条形图中的实际数字,以及所有条形图总数的百分比.

最终输出可能如下所示:

在此输入图像描述

Matplotlib有可能吗?

干杯,维克多

python graphing visualization matplotlib histogram

64
推荐指数
1
解决办法
8万
查看次数

用Python中的TeX在matplotlib标签中添加换行符?

如何在matplotlib中为图表的标签添加换行符(例如xlabel或ylabel)?例如,

plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here") 
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望y-labeled也能居中.有没有办法做到这一点?标签同时包含TeX(包含在'$'中)和换行符非常重要.

python graphing plot matplotlib

61
推荐指数
3
解决办法
6万
查看次数

R + ggplot:包含事件的时间序列

我是R/ggplot的新手.我想创建一个连续变量时间序列的geom_line图,然后添加一个由事件组成的图层.连续变量及其时间戳存储在一个data.frame中,事件及其时间戳存储在另一个data.frame中.

真正想做的是像finance.google.com上的图表.在那些,时间序列是股票价格,并有"标志"来表示新闻事件.我实际上并没有绘制财务资料,但图表的类型是相似的.我试图绘制日志文件数据的可视化.这是我的意思的一个例子......

谷歌图表与事件

如果可取(?),我想为每一层使用单独的data.frames(一个用于连续变量观察,另一个用于事件).

经过一些试验和错误,这是我能得到的尽可能接近.在这里,我使用ggplot附带的数据集中的示例数据."经济学"包含一些我想绘制的时间序列数据,"总统"包含一些事件(总统选举).

library(ggplot2)
data(presidential)
data(economics)

presidential <- presidential[-(1:3),]
yrng <- range(economics$unemploy)
ymin <- yrng[1]
ymax <- yrng[1] + 0.1*(yrng[2]-yrng[1])

p2 <- ggplot()
p2 <- p2 + geom_line(mapping=aes(x=date, y=unemploy), data=economics , size=3, alpha=0.5) 
p2 <- p2 + scale_x_date("time") +  scale_y_continuous(name="unemployed [1000's]")
p2 <- p2 + geom_segment(mapping=aes(x=start,y=ymin, xend=start, yend=ymax, colour=name), data=presidential, size=2, alpha=0.5)
p2 <- p2 + geom_point(mapping=aes(x=start,y=ymax, colour=name ), data=presidential, size=3) 
p2 <- p2 + geom_text(mapping=aes(x=start, y=ymax, label=name, angle=20, hjust=-0.1, vjust=0.1),size=6, data=presidential)
p2
Run Code Online (Sandbox Code Playgroud)

我的尝试

问题:

  • 这对于非常稀疏的事件是可以的,但是如果它们有一个集群(通常发生在日志文件中),它就会变得混乱.是否有一些技术可以用来整齐地显示在短时间间隔内发生的一系列事件?我在考虑使用position_jitter,但这对我来说真的很难.谷歌图表将这些事件"标志"叠加在一起,如果它们有很多的话.

  • 我实际上不喜欢以与连续测量显示相同的比例粘贴事件数据.我宁愿把它放在facet_grid中.问题是所有facet都必须来自相同的data.frame(不确定是否为真).如果是这样,那似乎也不理想(或者我只是想避免使用重塑?)

graphing visualization r ggplot2

58
推荐指数
4
解决办法
2万
查看次数

Matplotlib日志刻度刻度标签编号格式

matplotlib为轴指定对数刻度时,标记该轴的默认方法是使用10到一个幂的数字,例如.10 ^ 6.是否有一种简单的方法可以将所有这些标签更改为完整的数字表示?例如.1,10,100等

请注意,我不知道功率范围是什么,并且想要支持任意范围(包括负数).

python graphing numpy matplotlib

40
推荐指数
4
解决办法
4万
查看次数

GitHub在Graphs页面上使用了什么图形库?

GitHub在Graphs选项卡上使用了哪些图形库?导航到https://github.com/USER/REPOSITORY/graphs/commit-activity时,图表清晰,美观,反应灵敏.如果他们使用的是开源JavaScript库,我也很乐意使用它!我无法通过简短的代码检查来判断.

javascript graphing github

33
推荐指数
1
解决办法
6036
查看次数

如何按名称标记散点图点?

我试图找出如何在Google表格,Excel或Numbers上显示标签.

我的信息看起来像这样

name|x_val|y_val
----------------
a   |    1|    1
b   |    2|    4
c   |    1|    2
Run Code Online (Sandbox Code Playgroud)

然后我希望我的最终图表看起来像这样.

4|      .(c)
3|
2|  .(b) 
1|  .(a)
 |__ __ __ __
0   1  2  3  4
Run Code Online (Sandbox Code Playgroud)

就像为什么我不能用它的名字标记这些点?我似乎只能标记价值,例如,(c)会显示4

D3是唯一的解决方案吗?

excel graphing numbers google-sheets

30
推荐指数
2
解决办法
11万
查看次数

设置`axes.linewidth`而不更改`rcParams`全局字典

因此,似乎无法执行以下操作(它会引发错误,因为axes没有set_linewidth方法):

axes_style = {'linewidth':5}
axes_rect = [0.1, 0.1, 0.9, 0.9]

axes(axes_rect, **axes_style)
Run Code Online (Sandbox Code Playgroud)

并且必须使用以下旧技巧:

rcParams['axes.linewidth'] = 5 # set the value globally

... # some code

rcdefaults() # restore [global] defaults
Run Code Online (Sandbox Code Playgroud)

有一个简单/干净的方式(可能是一个人可以设置x- 和y- 轴参数单独,等)?

PS如果不是,为什么?

python graphing plot matplotlib

27
推荐指数
3
解决办法
4万
查看次数